session_info()
## Session info --------------------------------------------------------------
## setting value
## version R version 3.2.2 (2015-08-14)
## system x86_64, linux-gnu
## ui X11
## language ja
## collate ja_JP.UTF-8
## tz <NA>
## date 2015-11-02
## Packages ------------------------------------------------------------------
## package * version date source
## devtools * 1.9.1 2015-09-11 CRAN (R 3.2.2)
## digest 0.6.8 2014-12-31 CRAN (R 3.2.0)
## evaluate 0.8 2015-09-18 CRAN (R 3.2.2)
## formatR 1.2.1 2015-09-18 CRAN (R 3.2.2)
## htmltools 0.2.6 2014-09-08 CRAN (R 3.2.0)
## knitr 1.11 2015-08-14 CRAN (R 3.2.2)
## magrittr 1.5 2014-11-22 CRAN (R 3.2.0)
## memoise 0.2.1 2014-04-22 CRAN (R 3.2.0)
## rmarkdown 0.8.1 2015-10-10 CRAN (R 3.2.2)
## stringi 1.0-1 2015-10-22 CRAN (R 3.2.2)
## stringr 1.0.0.9000 2015-05-20 Github (hadley/stringr@13849b4)
## yaml 2.1.13 2014-06-12 CRAN (R 3.2.0)
search()
## [1] ".GlobalEnv" "package:stats" "package:graphics"
## [4] "package:grDevices" "package:utils" "package:datasets"
## [7] "package:devtools" "package:methods" "Autoloads"
## [10] "package:base"
# {dplyr}のNamespaceを読み込む
loadNamespace("dplyr")
## <environment: namespace:dplyr>
# 読み込んでるけどattachされてない
# なので関数名だけではみつけきれない
isNamespaceLoaded("dplyr")
## [1] TRUE
search()
## [1] ".GlobalEnv" "package:stats" "package:graphics"
## [4] "package:grDevices" "package:utils" "package:datasets"
## [7] "package:devtools" "package:methods" "Autoloads"
## [10] "package:base"
# Namespaceにattachしてみる
attachNamespace("dplyr")
# これで関数名で使える
search()
## [1] ".GlobalEnv" "package:dplyr" "package:stats"
## [4] "package:graphics" "package:grDevices" "package:utils"
## [7] "package:datasets" "package:devtools" "package:methods"
## [10] "Autoloads" "package:base"
head(select(iris,starts_with("Se")))
## Sepal.Length Sepal.Width
## 1 5.1 3.5
## 2 4.9 3.0
## 3 4.7 3.2
## 4 4.6 3.1
## 5 5.0 3.6
## 6 5.4 3.9
# detachされたけど、デフォルトではunloadされない
detach("package:dplyr")
search()
## [1] ".GlobalEnv" "package:stats" "package:graphics"
## [4] "package:grDevices" "package:utils" "package:datasets"
## [7] "package:devtools" "package:methods" "Autoloads"
## [10] "package:base"
isNamespaceLoaded("dplyr")
## [1] TRUE
# detachでunloadを指示
attachNamespace("dplyr")
search()
## [1] ".GlobalEnv" "package:dplyr" "package:stats"
## [4] "package:graphics" "package:grDevices" "package:utils"
## [7] "package:datasets" "package:devtools" "package:methods"
## [10] "Autoloads" "package:base"
detach("package:dplyr", unload = TRUE)
#これでunloadまで完了
search()
## [1] ".GlobalEnv" "package:stats" "package:graphics"
## [4] "package:grDevices" "package:utils" "package:datasets"
## [7] "package:devtools" "package:methods" "Autoloads"
## [10] "package:base"
isNamespaceLoaded("dplyr")
## [1] FALSE
getNamespace("dplyr")
## <environment: namespace:dplyr>
search()
## [1] ".GlobalEnv" "package:stats" "package:graphics"
## [4] "package:grDevices" "package:utils" "package:datasets"
## [7] "package:devtools" "package:methods" "Autoloads"
## [10] "package:base"
isNamespaceLoaded("dplyr")
## [1] TRUE
getNamespace()とloadNamespace()の違いは今後の課題ということで。
unloadNamespace("dplyr")
isNamespaceLoaded("dplyr")
## [1] FALSE
# loadNamespace("dplyr")を指定なくてもloadして実行する
head(dplyr::select(iris,starts_with("Se")))
## Sepal.Length Sepal.Width
## 1 5.1 3.5
## 2 4.9 3.0
## 3 4.7 3.2
## 4 4.6 3.1
## 5 5.0 3.6
## 6 5.4 3.9
search()
## [1] ".GlobalEnv" "package:stats" "package:graphics"
## [4] "package:grDevices" "package:utils" "package:datasets"
## [7] "package:devtools" "package:methods" "Autoloads"
## [10] "package:base"
isNamespaceLoaded("dplyr")
## [1] TRUE
つまり、“::”を使うと、そのパッケージをloadしてメモリに置き、実行する。そしてunloadするまでは残ったまま。
でもattachしてないので、関数名だけで呼び出してつかえない。