[英]R user-defined functions in new environment
我使用一些用户定义的小函数作为助手。 这些函数都存储在R_HOME_USER/helper
目录中。 到目前为止,这些功能都是在R启动时获取的。 总体方法类似于`lapply(my.helper.list,source)。 我现在希望这些函数源化但不出现在我的环境中 ,因为它们会污染它们。
第一个干净的方法是使用我所有的助手来构建一个程序包。 目前,我不想遵循此方法。 第二种方法是用一个前导点命名这些助手。 这让我不得不运行R > .helper1()
。
最好的方法是在特定且可访问的环境中定义这些帮助程序,但是我搞砸了代码。 我的想法是首先创建一个新环境:
.helperEnv <- new.env(parent = baseenv())
attach(.helperEnv, name = '.helperEnv')
好的, R > search()
在列表中返回'helperEnv' 。 然后我运行:
assign('helper1', helper1, envir = .helperEnv)
rm(helper1)
很好, ls(.helperEnv)
返回'helper1',并且此功能在我的环境中不再出现。 问题是我无法运行helper1(找不到对象)。 我想我走的路不正确,请多多指教。
我认为您应该在调用中分配pos
参数以attach
为负数:
.helperEnv <- new.env()
.helperEnv$myfunc<-function(x) x^3+1
attach(.helperEnv,name="helper",pos=-1)
ls()
#character(0)
myfunc
#function(x) x^3+1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.