掩盖R中`ls`的函数

时间:2013-07-17 18:05:23

标签: r rprofile

我想在我的.Rprofile中添加以下功能,以便更容易安装bioconductor包:

install.bioconductor <- function(...) {
  source("http://bioconductor.org/biocLite.R")
  biocLite(...)
}

但是当我加载一个新的R会话时,现在我在调用ls时会列出这个函数。有没有办法掩盖这个功能的显示?

1 个答案:

答案 0 :(得分:3)

您可以将其置于自己的环境中,并将该环境附加到搜索路径。

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在comment中提到的那样,您可以将其保留在.GlobalEnv中,但在名称的开头添加一个点(即将其命名为.install.bioconductor),以便它将被“隐藏”,以便它不会显示ls(),但会显示ls(all.names=TRUE)