Маскировать функцию из `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),

Другие вопросы по тегам