Chapter 6 R-Packages

R-Packages sind Erweiterungen für R, die eine große Breite von Anwendungszielen abdecken. R-Packages werden von vielen verschiedenen Personen, oft Forschergruppen zur Verfügung gestellt.

Zur Installation von R-Packages dient der Befehl install.packages("...") Zum Laden von Packages dienen beispielsweise die Befehle library(...) oder require(...).

Befehle in Packages können auch ohne Laden des Packages angesprochen werden, indem dem Befehl der Package-Name vorangestellt wird: psych::describe() ruft den Befehl describe() aus dem Package psych auf.

R-Packages können mehr als nur Befehle enthalten, beispielsweise Daten oder Anwendungsbeispiele.

6.1 Examples - Beispiele

6.2 Notes and Examples - Hinweise und Beispiele

  • Packages installieren install.packages("psych") würde das Package psych installieren.

  • Namen von zu installierenden Packages müssen bei install.packages() in Quotes (single or double) angegeben werden, nicht aber beim Laden. install.packages(psych) fails install.packages("psych") works library(psych) works library("psych") works also

  • Wir können einen Pfad angeben, wohin die Packages installiert werden sollen. Jedes Paket wird dort in einem eigenen Unterverzeichnis gleichen Namens installiert install.packages("sudoku", lib.loc("P:/R/library"))

  • install.packages() sollte nicht in R-Skripten oder RMarkdown-Dokumenten verwendet werden.

  • Paketnamen sind, wie alle Namen in R, case-sensitive, unterscheiden Groß- und Kleinschreibung.

  • Packages aktivieren (R-Studio, R-Syntax) library(psych) oder require(psych)

  • Packages haben eigenen “Namespace”, der nach dem Laden in den global Namespace mit aufgenommen wird.

  • Package-Funktionen können sich maskieren siehe

  • Package Suchpfad /Library/Frameworks/R.framework/Versions/4.1/Resources/library Hier werden in der aufgelisteten Reihenfolge R-Packages gesucht

  • Packages direkt ansprechen mit :: Package Funktionen über <package-name>::<package-command>

    1. B. psych::describe() das Package muss nicht geladen sein, require() oder library() sind nicht nötig vor Benutzung
  • Package-Funktionen lsf.str("package:psych") (eine Auflistung aller Befehle, wenn die library(psych) installiert und geladen ist) werden beschrieben in der Dokumentation . Das natürlich auch auf der zugehörigen Website, hier: https://cran.r-project.org/web/packages/psych/psych.pdf

  • Package “psych” entladen detach("package:psych", unload = TRUE)

  • Datensätze in Packages data(package='psychTools') Datensätze können auch über den :: Operator angesprochen werden, ohne das Package laden zu müssen dd <- psychTools::bfi

  • Packages finden, z. B. bei cran

  • Help for packages

    • browseVignettes('...')
    • help(package = '...', help_type = 'html')
  • Liste aller derzeit geladenen Packages (.packages()) Findet sich auch im Files Plane (unten rechts) im Tab “Packages”, die Packages mit Haken sind gerade geladen. Hier können die Packages auch ge- und entladen werden (Häkchen).

  • Liste aller installierten Packages installed.packages() ip = as.data.frame(installed.packages()) View(ip) oder Klick darauf im Environment

  • Infos zu Packages und deren Installation auf dem Teaching Server.

# we install package psych - commented out here because it is already installed
# install.packages("psych")  # we have to put the name of the package in Quotes (single or double)
# we load package psych
library(psych)
# we list all packages currently loaded (or look for check marks in RStudios Packages Tab in the Files Pane)
(.packages())
## [1] "psych"     "stats"     "graphics"  "grDevices" "utils"     "datasets"  "methods"   "base"
# we list the first few packages that are currently installed (we also find them in RStudios Packages Tab in the Files Pane)
head(installed.packages())
##            Package      LibPath                                                          Version  Priority Depends       
## abind      "abind"      "/Library/Frameworks/R.framework/Versions/4.1/Resources/library" "1.4-5"  NA       "R (>= 1.5.0)"
## ade4       "ade4"       "/Library/Frameworks/R.framework/Versions/4.1/Resources/library" "1.7-18" NA       "R (>= 2.10)" 
## ape        "ape"        "/Library/Frameworks/R.framework/Versions/4.1/Resources/library" "5.6-1"  NA       "R (>= 3.2.0)"
## askpass    "askpass"    "/Library/Frameworks/R.framework/Versions/4.1/Resources/library" "1.1"    NA       NA            
## asnipe     "asnipe"     "/Library/Frameworks/R.framework/Versions/4.1/Resources/library" "1.1.16" NA       "R (>= 2.10)" 
## assertthat "assertthat" "/Library/Frameworks/R.framework/Versions/4.1/Resources/library" "0.2.1"  NA       NA            
##            Imports                                                                              LinkingTo
## abind      "methods, utils"                                                                     NA       
## ade4       "graphics, grDevices, methods, stats, utils, MASS, pixmap, sp"                       NA       
## ape        "nlme, lattice, graphics, methods, stats, tools, utils,\nparallel, Rcpp (>= 0.12.0)" "Rcpp"   
## askpass    "sys (>= 2.1)"                                                                       NA       
## asnipe     "MASS, Matrix"                                                                       NA       
## assertthat "tools"                                                                              NA       
##            Suggests                                                                                                                                           
## abind      NA                                                                                                                                                 
## ade4       "ade4TkGUI, adegraphics, adephylo, ape, CircStats, deldir,\nlattice, spdep, splancs, waveslim, progress, foreach, parallel,\ndoParallel, iterators"
## ape        "gee, expm, igraph, phangorn"                                                                                                                      
## askpass    "testthat"                                                                                                                                         
## asnipe     "ape, raster, sna"                                                                                                                                 
## assertthat "testthat, covr"                                                                                                                                   
##            Enhances License              License_is_FOSS License_restricts_use OS_type MD5sum NeedsCompilation Built  
## abind      NA       "LGPL (>= 2)"        NA              NA                    NA      NA     "no"             "4.1.0"
## ade4       NA       "GPL (>= 2)"         NA              NA                    NA      NA     "yes"            "4.1.0"
## ape        NA       "GPL-2 | GPL-3"      NA              NA                    NA      NA     "yes"            "4.1.2"
## askpass    NA       "MIT + file LICENSE" NA              NA                    NA      NA     "yes"            "4.1.0"
## asnipe     NA       "GPL-2"              NA              NA                    NA      NA     "no"             "4.1.0"
## assertthat NA       "GPL-3"              NA              NA                    NA      NA     "no"             "4.1.0"
# we load package MASS and psych
library(MASS, psych)
# we load data from package psych
dd <- psych::bfi
# as an example for masking we select certain columns using select of package dplyr
dd_f <- dplyr::select(dd, gender, education, age)
# ... but function select of package MASS fails: uncomment the following line if you like to see ...
# dd_f <- MASS::select(dd, gender, education, age)

6.3 Masking Namenskonflikte

Eine Funktion (Befehl) desselben Namens kann in unterschiedlichen Packages definiert sein. Dies führt zuweilen zu sog. Masking-Problemen, da verschiedene geladene Packages sich gegenseitig Funktionen gleichen Namens überschreiben. Beispiel: MASS::select() vs dplyr::select().

Wird ein Package geladen, werden die Namen aller Objekte (Befehle, Daten, etc.) des Packages in den “current Namespace” aufgenommen. Funktionen oder allgemeiner Objekte mit demselben Namen aus verschiedenen Packages können sich dabei gegenseitig “maskieren”. Bei Maskierung wird das Objekt (Funktion, Befehl) mit dem geforderten Namen des Package gefunden, das als letztes geladen wurde. Zuverlässig werden Funktionen eines Package ausgeführt, wenn sie auch mit dem Package-Namen aufgerufen werden.

Problem: Viele geladene Packages, Standardsammlung von Packages am Anfang eines Scriptes

Befehle, die beim Umgang mit Masking helfen.

# we load data from package psych
dd <- psych::bfi
# we load packages
library(MASS)
library(dplyr)
## 
## Attache Paket: 'dplyr'
## Das folgende Objekt ist maskiert 'package:MASS':
## 
##     select
## Die folgenden Objekte sind maskiert von 'package:stats':
## 
##     filter, lag
## Die folgenden Objekte sind maskiert von 'package:base':
## 
##     intersect, setdiff, setequal, union
# package hierarchy
search()
##  [1] ".GlobalEnv"        "package:dplyr"     "package:MASS"      "package:psych"     "tools:rstudio"     "package:stats"    
##  [7] "package:graphics"  "package:grDevices" "package:utils"     "package:datasets"  "package:methods"   "Autoloads"        
## [13] "org:r-lib"         "package:base"
# conflicts
conflicts(detail=TRUE)
## $.GlobalEnv
## [1] "weights"
## 
## $`package:dplyr`
## [1] "select"    "filter"    "lag"       "intersect" "setdiff"   "setequal"  "union"    
## 
## $`package:MASS`
## [1] "select" "npk"   
## 
## $`package:stats`
## [1] "filter"  "lag"     "weights"
## 
## $`package:graphics`
## [1] "plot"
## 
## $`package:datasets`
## [1] "npk"
## 
## $`package:methods`
## [1] "body<-"    "kronecker"
## 
## $`package:base`
## [1] "body<-"    "intersect" "kronecker" "plot"      "setdiff"   "setequal"  "union"
# with a suspicious command, here summarise()
getAnywhere(x = "select")
## 3 differing objects matching 'select' were found
## in the following places
##   package:dplyr
##   package:MASS
##   namespace:dplyr
##   namespace:tidyselect
##   namespace:MASS
## Use [] to view one of them
# alternatively for select
x = "select"
names(which(sapply(search(), FUN = function(env) exists(x, env, inherits = FALSE, mode = "function"))))
## [1] "package:dplyr" "package:MASS"
# help by unloading the unwanted package
detach("package:MASS", unload=TRUE)
# ...  or by explicitly calling a package-specific command using "::"
dplyr::select(dd, age, gender, education)
##       age gender education
## 61617  16      1        NA
## 61618  18      2        NA
## 61620  17      2        NA
## 61621  17      2        NA
## 61622  17      1        NA
## 61623  21      2         3
## 61624  18      1        NA
## 61629  19      1         2
## 61630  19      1         1
## 61633  17      2        NA
## 61634  21      1         1
## 61636  16      1        NA
## 61637  16      2        NA
## 61639  16      1        NA
## 61640  17      1         1
## 61643  17      1        NA
## 61650  17      2        NA
## 61651  17      1        NA
## 61653  16      2        NA
## 61654  17      2        NA
## 61656  17      1        NA
## 61659  17      2        NA
## 61661  68      1         5
## 61664  27      2         2
## 61667  18      1         1
## 61668  20      2         3
## 61669  51      2         5
## 61670  14      2        NA
## 61672  33      2         3
## 61673  18      2         3
## 61678  17      2        NA
## 61679  41      2         3
## 61682  23      1         5
## 61683  17      2        NA
## 61684  20      1         3
## 61685  23      1         3
## 61686  20      1         3
## 61687  21      1         3
## 61688  30      1        NA
## 61691  48      2         5
## 61692  40      2         3
## 61693  27      2         4
## 61696  18      1         1
## 61698  20      1         4
## 61700  24      2         5
## 61701  25      1         3
## 61702  22      1         2
## 61703  18      2         1
## 61713  43      2         1
## 61715  20      1         3
## 61716  24      2         3
## 61723  26      2         4
## 61724  26      1         4
## 61725  25      2         3
## 61728  25      1         4
## 61730  26      1         5
## 61731  21      2         3
## 61732  24      1         5
## 61740  50      2         2
## 61742  29      1         5
## 61748  32      1         1
## 61749  18      1         1
## 61754  32      2         4
## 61756  26      2         3
## 61757  27      2         5
## 61759  19      2         3
## 61761  21      1         4
## 61762  21      1         3
## 61763  36      2         5
## 61764  48      2         2
## 61771  22      2         3
## 61772  23      2         2
## 61773  21      1         3
## 61775  20      2         3
## 61776  23      2         3
## 61777  43      2         4
## 61778  16      2        NA
## 61780  14      2        NA
## 61782  54      2         3
## 61783  20      1         2
## 61784  28      1         4
## 61788  38      2         4
## 61789  38      1        NA
## 61793  27      1         3
## 61794  18      2         1
## 61797  29      1         3
## 61798  50      2         4
## 61801  50      2         3
## 61808  20      2         3
## 61812  19      2         3
## 61813  56      2         4
## 61816  29      2         4
## 61818  29      2         5
## 61819  48      2         5
## 61821  30      2         1
## 61822  21      2         2
## 61825  19      1         3
## 61826  42      1         5
## 61829  18      2         3
## 61831  50      2         4
## 61834  24      2         3
## 61835  25      1         5
## 61838  47      1         5
## 61839  18      2         1
## 61840  37      2         4
## 61841  33      2         4
## 61847  40      2         5
## 61848  18      1        NA
## 61851  21      2         3
## 61852  27      2         3
## 61854  19      2         3
## 61856  36      2         4
## 61857  19      2         3
## 61861  29      2         5
## 61862  23      2         5
## 61865  23      1         5
## 61868  20      1         3
## 61873  24      1         4
## 61874  24      1         5
## 61880  26      1         5
## 61886  25      2         3
## 61888  24      1         4
## 61889  24      1         5
## 61890  28      1         5
## 61891  22      1         4
## 61895  26      1         5
## 61896  25      1         5
## 61900  23      1         4
## 61901  22      1         3
## 61907  19      2         3
## 61908  25      2         4
## 61909  25      1         3
## 61911  27      1         5
## 61913  20      2         3
## 61915  25      2         3
## 61918  49      2         3
## 61921  26      2         3
## 61922  25      2         3
## 61923  25      2         3
## 61925  18      1        NA
## 61926  21      1         3
## 61928  22      2         3
## 61932  37      2         3
## 61935  20      2         3
## 61936  22      2         1
## 61939  41      2         5
## 61944  22      2         5
## 61945  24      1         5
## 61949  23      2         4
## 61952  32      1         4
## 61953  43      1         5
## 61954  30      2         4
## 61957  50      2         2
## 61958  18      1         1
## 61965  16      2         3
## 61967  34      2         5
## 61968  18      2         2
## 61969  24      2         5
## 61971  18      1         2
## 61972  22      2         3
## 61973  36      2         2
## 61974  19      2         3
## 61975  20      1         3
## 61976  24      1         3
## 61978  20      2         3
## 61979  34      1         5
## 61983  21      1         3
## 61986  19      1         3
## 61987  18      2         2
## 61989  25      2        NA
## 61990  27      2         5
## 61992  33      1         5
## 61993  20      1         3
## 61994  19      2         3
## 61999  16      2        NA
## 62001  18      2         3
## 62003  35      2         4
## 62004  23      2         3
## 62005  27      2         5
## 62007  18      1         3
## 62009  31      1         2
## 62011  17      2        NA
## 62013  53      1         1
## 62014  29      1         5
## 62015  19      1         2
## 62022  29      2         1
## 62023  41      1         5
## 62024  31      2         5
## 62025  45      2         3
## 62026  47      2         2
## 62029  27      1         4
## 62031  24      2         2
## 62032  20      1         4
## 62033  23      1         2
## 62034  28      1         5
## 62038  16      2        NA
## 62039  18      1         1
## 62041  16      2        NA
## 62042  17      1        NA
## 62043  18      2         1
## 62044  16      1        NA
## 62047  16      2        NA
## 62048  18      2         1
## 62051  17      1        NA
## 62052  17      1        NA
## 62054  16      1        NA
## 62055  18      2         1
## 62056  50      2         5
## 62059  25      2         4
## 62060  48      1         5
## 62063  27      2         4
## 62064  22      2         3
## 62067  20      1         3
## 62070  17      2        NA
## 62073  59      2         5
## 62075  17      2         1
## 62077  32      2         3
## 62079  22      1         3
## 62082  21      1         3
## 62084  29      1         5
## 62090  18      1         1
## 62092  40      2         3
## 62094  48      2         5
## 62099  39      2         4
## 62101  50      2         4
## 62102  26      2         5
## 62103  21      2         2
## 62105  55      1         4
## 62106  37      2         5
## 62107  38      2         5
## 62111  19      1         3
## 62115  17      2        NA
## 62118  20      2         3
## 62119  34      2         5
## 62120  38      2         3
## 62121  18      2         3
## 62124  32      2         5
## 62128  19      1         3
## 62130  19      1         3
## 62132  21      1         3
## 62133  22      2         3
## 62136  19      1         3
## 62137  41      2         5
## 62142  40      1         3
## 62144  44      2         5
## 62147  25      1         3
## 62151  15      2        NA
## 62156  24      1         3
## 62160  23      2         3
## 62161  22      2         1
## 62162  19      2         3
## 62163  23      2         3
## 62164  38      2         3
## 62165  26      1         2
## 62166  46      2         3
## 62168  24      2         2
## 62170  18      2         1
## 62171  48      1         2
## 62173  30      2         3
## 62176  22      1         2
## 62179  20      1         3
## 62180  36      1         5
## 62181  18      1         1
## 62182  27      1         3
## 62183  30      2         2
## 62189  18      1         3
## 62192  20      1         3
## 62197  55      2         3
## 62198  17      2         3
## 62199  28      1         4
## 62201  19      2         3
## 62202  19      2         3
## 62203  16      2        NA
## 62204  31      1         1
## 62205  50      2         3
## 62206  31      2         3
## 62208  27      2         5
## 62209  16      1         3
## 62212  18      1         3
## 62213  20      2         3
## 62214  21      1         3
## 62215  32      2         5
## 62216  30      2         3
## 62219  24      2         3
## 62220  35      2         1
## 62224  19      2         3
## 62225  23      2         3
## 62226  16      2        NA
## 62227  21      1         4
## 62228  22      2         3
## 62231  20      2         3
## 62233  26      1         4
## 62237  19      1         3
## 62239  25      2         5
## 62240  28      2         5
## 62242  17      2        NA
## 62244  16      2        NA
## 62245  17      1        NA
## 62246  29      1         1
## 62252  19      2         2
## 62259  47      2         4
## 62260  52      2         4
## 62261  22      2         4
## 62263  18      1         3
## 62264  30      2         3
## 62265  17      2        NA
## 62266  31      1         3
## 62267  56      1         2
## 62272  28      2         4
## 62276  33      2         4
## 62278  30      2         3
## 62279  23      2         3
## 62280  20      2         3
## 62281  27      2         2
## 62282  25      1         2
## 62287  27      2         2
## 62288  56      2        NA
## 62289  18      2         3
## 62290  18      1         1
## 62293  21      1         3
## 62295  19      1         2
## 62296  18      2         2
## 62298  29      1         4
## 62299  33      1         4
## 62300  31      1         3
## 62301  33      2         5
## 62303  28      2         5
## 62305  21      2         3
## 62307  45      2         4
## 62312  44      2         5
## 62313  18      2         3
## 62316  27      2         5
## 62317  45      2         4
##  [ reached 'max' / getOption("max.print") -- omitted 2467 rows ]
# as an example for masking we select certain columns using select of package dplyr
dd_f <- dplyr::select(dd, gender, education, age)
# ... but function select of package MASS fails: uncomment and run the following line if you want to see ...
# dd_f <- MASS::select(dd, gender, education, age)
# so if we have both packages loaded, it depends on the priority of the packages which function is called
search()
##  [1] ".GlobalEnv"        "package:dplyr"     "package:psych"     "tools:rstudio"     "package:stats"     "package:graphics" 
##  [7] "package:grDevices" "package:utils"     "package:datasets"  "package:methods"   "Autoloads"         "org:r-lib"        
## [13] "package:base"
# the first function with name "select" that is found in package hierarchy will be executed 
select(dd, gender, education, age)
##       gender education age
## 61617      1        NA  16
## 61618      2        NA  18
## 61620      2        NA  17
## 61621      2        NA  17
## 61622      1        NA  17
## 61623      2         3  21
## 61624      1        NA  18
## 61629      1         2  19
## 61630      1         1  19
## 61633      2        NA  17
## 61634      1         1  21
## 61636      1        NA  16
## 61637      2        NA  16
## 61639      1        NA  16
## 61640      1         1  17
## 61643      1        NA  17
## 61650      2        NA  17
## 61651      1        NA  17
## 61653      2        NA  16
## 61654      2        NA  17
## 61656      1        NA  17
## 61659      2        NA  17
## 61661      1         5  68
## 61664      2         2  27
## 61667      1         1  18
## 61668      2         3  20
## 61669      2         5  51
## 61670      2        NA  14
## 61672      2         3  33
## 61673      2         3  18
## 61678      2        NA  17
## 61679      2         3  41
## 61682      1         5  23
## 61683      2        NA  17
## 61684      1         3  20
## 61685      1         3  23
## 61686      1         3  20
## 61687      1         3  21
## 61688      1        NA  30
## 61691      2         5  48
## 61692      2         3  40
## 61693      2         4  27
## 61696      1         1  18
## 61698      1         4  20
## 61700      2         5  24
## 61701      1         3  25
## 61702      1         2  22
## 61703      2         1  18
## 61713      2         1  43
## 61715      1         3  20
## 61716      2         3  24
## 61723      2         4  26
## 61724      1         4  26
## 61725      2         3  25
## 61728      1         4  25
## 61730      1         5  26
## 61731      2         3  21
## 61732      1         5  24
## 61740      2         2  50
## 61742      1         5  29
## 61748      1         1  32
## 61749      1         1  18
## 61754      2         4  32
## 61756      2         3  26
## 61757      2         5  27
## 61759      2         3  19
## 61761      1         4  21
## 61762      1         3  21
## 61763      2         5  36
## 61764      2         2  48
## 61771      2         3  22
## 61772      2         2  23
## 61773      1         3  21
## 61775      2         3  20
## 61776      2         3  23
## 61777      2         4  43
## 61778      2        NA  16
## 61780      2        NA  14
## 61782      2         3  54
## 61783      1         2  20
## 61784      1         4  28
## 61788      2         4  38
## 61789      1        NA  38
## 61793      1         3  27
## 61794      2         1  18
## 61797      1         3  29
## 61798      2         4  50
## 61801      2         3  50
## 61808      2         3  20
## 61812      2         3  19
## 61813      2         4  56
## 61816      2         4  29
## 61818      2         5  29
## 61819      2         5  48
## 61821      2         1  30
## 61822      2         2  21
## 61825      1         3  19
## 61826      1         5  42
## 61829      2         3  18
## 61831      2         4  50
## 61834      2         3  24
## 61835      1         5  25
## 61838      1         5  47
## 61839      2         1  18
## 61840      2         4  37
## 61841      2         4  33
## 61847      2         5  40
## 61848      1        NA  18
## 61851      2         3  21
## 61852      2         3  27
## 61854      2         3  19
## 61856      2         4  36
## 61857      2         3  19
## 61861      2         5  29
## 61862      2         5  23
## 61865      1         5  23
## 61868      1         3  20
## 61873      1         4  24
## 61874      1         5  24
## 61880      1         5  26
## 61886      2         3  25
## 61888      1         4  24
## 61889      1         5  24
## 61890      1         5  28
## 61891      1         4  22
## 61895      1         5  26
## 61896      1         5  25
## 61900      1         4  23
## 61901      1         3  22
## 61907      2         3  19
## 61908      2         4  25
## 61909      1         3  25
## 61911      1         5  27
## 61913      2         3  20
## 61915      2         3  25
## 61918      2         3  49
## 61921      2         3  26
## 61922      2         3  25
## 61923      2         3  25
## 61925      1        NA  18
## 61926      1         3  21
## 61928      2         3  22
## 61932      2         3  37
## 61935      2         3  20
## 61936      2         1  22
## 61939      2         5  41
## 61944      2         5  22
## 61945      1         5  24
## 61949      2         4  23
## 61952      1         4  32
## 61953      1         5  43
## 61954      2         4  30
## 61957      2         2  50
## 61958      1         1  18
## 61965      2         3  16
## 61967      2         5  34
## 61968      2         2  18
## 61969      2         5  24
## 61971      1         2  18
## 61972      2         3  22
## 61973      2         2  36
## 61974      2         3  19
## 61975      1         3  20
## 61976      1         3  24
## 61978      2         3  20
## 61979      1         5  34
## 61983      1         3  21
## 61986      1         3  19
## 61987      2         2  18
## 61989      2        NA  25
## 61990      2         5  27
## 61992      1         5  33
## 61993      1         3  20
## 61994      2         3  19
## 61999      2        NA  16
## 62001      2         3  18
## 62003      2         4  35
## 62004      2         3  23
## 62005      2         5  27
## 62007      1         3  18
## 62009      1         2  31
## 62011      2        NA  17
## 62013      1         1  53
## 62014      1         5  29
## 62015      1         2  19
## 62022      2         1  29
## 62023      1         5  41
## 62024      2         5  31
## 62025      2         3  45
## 62026      2         2  47
## 62029      1         4  27
## 62031      2         2  24
## 62032      1         4  20
## 62033      1         2  23
## 62034      1         5  28
## 62038      2        NA  16
## 62039      1         1  18
## 62041      2        NA  16
## 62042      1        NA  17
## 62043      2         1  18
## 62044      1        NA  16
## 62047      2        NA  16
## 62048      2         1  18
## 62051      1        NA  17
## 62052      1        NA  17
## 62054      1        NA  16
## 62055      2         1  18
## 62056      2         5  50
## 62059      2         4  25
## 62060      1         5  48
## 62063      2         4  27
## 62064      2         3  22
## 62067      1         3  20
## 62070      2        NA  17
## 62073      2         5  59
## 62075      2         1  17
## 62077      2         3  32
## 62079      1         3  22
## 62082      1         3  21
## 62084      1         5  29
## 62090      1         1  18
## 62092      2         3  40
## 62094      2         5  48
## 62099      2         4  39
## 62101      2         4  50
## 62102      2         5  26
## 62103      2         2  21
## 62105      1         4  55
## 62106      2         5  37
## 62107      2         5  38
## 62111      1         3  19
## 62115      2        NA  17
## 62118      2         3  20
## 62119      2         5  34
## 62120      2         3  38
## 62121      2         3  18
## 62124      2         5  32
## 62128      1         3  19
## 62130      1         3  19
## 62132      1         3  21
## 62133      2         3  22
## 62136      1         3  19
## 62137      2         5  41
## 62142      1         3  40
## 62144      2         5  44
## 62147      1         3  25
## 62151      2        NA  15
## 62156      1         3  24
## 62160      2         3  23
## 62161      2         1  22
## 62162      2         3  19
## 62163      2         3  23
## 62164      2         3  38
## 62165      1         2  26
## 62166      2         3  46
## 62168      2         2  24
## 62170      2         1  18
## 62171      1         2  48
## 62173      2         3  30
## 62176      1         2  22
## 62179      1         3  20
## 62180      1         5  36
## 62181      1         1  18
## 62182      1         3  27
## 62183      2         2  30
## 62189      1         3  18
## 62192      1         3  20
## 62197      2         3  55
## 62198      2         3  17
## 62199      1         4  28
## 62201      2         3  19
## 62202      2         3  19
## 62203      2        NA  16
## 62204      1         1  31
## 62205      2         3  50
## 62206      2         3  31
## 62208      2         5  27
## 62209      1         3  16
## 62212      1         3  18
## 62213      2         3  20
## 62214      1         3  21
## 62215      2         5  32
## 62216      2         3  30
## 62219      2         3  24
## 62220      2         1  35
## 62224      2         3  19
## 62225      2         3  23
## 62226      2        NA  16
## 62227      1         4  21
## 62228      2         3  22
## 62231      2         3  20
## 62233      1         4  26
## 62237      1         3  19
## 62239      2         5  25
## 62240      2         5  28
## 62242      2        NA  17
## 62244      2        NA  16
## 62245      1        NA  17
## 62246      1         1  29
## 62252      2         2  19
## 62259      2         4  47
## 62260      2         4  52
## 62261      2         4  22
## 62263      1         3  18
## 62264      2         3  30
## 62265      2        NA  17
## 62266      1         3  31
## 62267      1         2  56
## 62272      2         4  28
## 62276      2         4  33
## 62278      2         3  30
## 62279      2         3  23
## 62280      2         3  20
## 62281      2         2  27
## 62282      1         2  25
## 62287      2         2  27
## 62288      2        NA  56
## 62289      2         3  18
## 62290      1         1  18
## 62293      1         3  21
## 62295      1         2  19
## 62296      2         2  18
## 62298      1         4  29
## 62299      1         4  33
## 62300      1         3  31
## 62301      2         5  33
## 62303      2         5  28
## 62305      2         3  21
## 62307      2         4  45
## 62312      2         5  44
## 62313      2         3  18
## 62316      2         5  27
## 62317      2         4  45
##  [ reached 'max' / getOption("max.print") -- omitted 2467 rows ]

6.3.1 weitere Beispiele

summarize() ist ein Befehl, den es in library(Hmisc) und in library(dplyr) gibt. dplyr::filter() vs. stats::filter()

6.4 Workaround eigene Packages

Die Packages werden in einem Verzeichnis auf dem P: Laufwerk installiert und beim Laden wird mit angegeben, von wo aus das Package gelesen werden soll.

2019 neu: P:/R/library wurde zum default path zentral hinzugefügt .libPaths() Damit kann ein dort installiertes Paket ohne Angabe eines Load-Path gestartet werden

Beispiel: Hier wird P:\R\libraries als Verzeichnis für Libraries benutzt, Sie haben hier Schreibrechte.

[die Befehle unten dienen nur der Illustration, sind auskommentiert und werden nicht direkt ausgeführt]

# get and install a package called sudoku in a specified directory
install.packages("sudoku", lib="P:/R/library")
# load package sudoku explicitly by supplying the location of the package
library(sudoku, lib.loc='P:/R/library')
# ... the same using require()
require(sudoku, lib.loc='P:/R/library')

6.5 Gesamtverzeichnis von Packages bei CRAN

CRAN-Packages

6.6 Verzeichnis von Packages bei RStudio

RStudio Packages

6.7 Screencasts

6.7.1 Screencast

  • Installation eigener Pakete im P-Laufwerk auf dem Lehre-Server StudIP - ownCloud

6.8 Exercises/Übungen

  • laden/aktivieren Sie verschiedene Packages (in RStudio und als Command)

  • verschaffen Sie sich einen Überblick über die in dem Package enthaltenen Befehle

  • nutzen Sie testweise Befehle aus den geladenen Packages

  • lubridate installieren und ausprobieren, Datums- und Zeitberechnungen cf cf führen sie ein paar Zeit- und Datumsberechnungen durch

  • installieren Sie das Package sudoku

  • generieren Sie ein Sudoku

  • finden Sie die Lösung des neu generierten Sudoku

  • installieren Sie ein anderes, Ihnen interessant vorkommendes Paket finden Sie heraus, welche Datensätze es zur Verfügung stellt. laden Sie einen der Datensätze und machen Sie sich ein Bild, um welche Art von Daten es sich handelt. (psychTools, MPsychoR, )

  • prüfen Sie Namenskonflikte von Befehlen, also das sog. Masking finden Sie heraus, welche Version eines maskierten Befehls gerade aktiv ist (bei einem Aufruf ohne Package-Präfix via :: )

  • entladen Sie eines Ihrer geladenen Pakete

6.9 Check

  • was sind R-Packages, wozu dienen sie?
  • kenne ich ein paar für mich wichtige Packages?
  • kann ich Packages laden, sicherstellen dass sie geladen sind, entladen?
  • kann ich Packages installieren?
  • auf dem Lehre-Server?
  • weiß ich, wie ich einen Befehl aus einem Package direkt aufrufen kann, also ohne ihn zu laden?
  • was ist command masking, wie finde ich masking heraus, wie helfe ich mir bei masking, …