Маскировать функцию из `ls` в R
Я хочу добавить следующую функцию в мой.Rprofile, чтобы упростить установку пакетов биокондуктора:
install.bioconductor <- function(...) {
source("http://bioconductor.org/biocLite.R")
biocLite(...)
}
Но когда я загружаю новый сеанс R, эта функция теперь отображается при вызове ls
, Есть ли способ маскировки функции от показа?
1 ответ
Решение
Вы можете поместить его в собственное окружение и привязать это окружение к пути поиска.
myFUNs <- new.env()
myFUNs$install.bioconductor <- function(...) {
source("http://bioconductor.org/biocLite.R")
biocLite(...)
}
attach(myFUNs) # attach to the search path
rm(myFUNs) # remove from .GlobalEnv
# it is still accessible via
# install.bioconductor(...)
Тогда это будет доступно, но не будет отображаться в ls()
, (Вы можете увидеть, что прикреплено к пути поиска с search()
, и вы можете увидеть, что в myFUNs
с ls(myFUNs)
)
Кроме того, как упомянул @JoshuaO'Brien в комментарии, вы можете оставить его в .GlobalEnv
но добавьте точку в начале имени (т.е. назовите его .install.bioconductor
) так что он будет "скрыт" так, что он не будет отображаться с ls()
, но появится с ls(all.names=TRUE)
,