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.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)
failsinstall.packages("psych")
workslibrary(psych)
workslibrary("psych")
works alsoWir 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)
oderrequire(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>
- B.
psych::describe()
das Package muss nicht geladen sein,require()
oderlibrary()
sind nicht nötig vor Benutzung
- B.
Package-Funktionen
lsf.str("package:psych")
(eine Auflistung aller Befehle, wenn dielibrary(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.pdfPackage “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üssendd <- 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 EnvironmentInfos 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.
##
## 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
## [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"
## $.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"
## 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.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.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 durchinstallieren 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, …