我正在尝试创建一个r
库。当我创建并调用一个从库外部进行某些赋值的函数时,它可以工作(案例A),但是当我从库中进行调用时(案例B)却不能。
例如:
test<- function(){
for(f in list.files()){
print(f)
dt <- read.csv(f, nrows=1, fileEncoding="UTF-8-BOM")
nm <- strsplit(f,".")[[1]][1]
assign(paste0(nm,"_dim"), dt)
}
}
我了解在案例A中,assign
仅用于全球环境,但是我不确定案例B中会发生什么。
理想情况下,我不想用大量只能用于软件包的变量来污染全局环境,例如,使用
assign(paste0(nm,"_dim"), dt, envir = globalenv())
是我的最后选择。
我天真的尝试做assign(paste0(nm,"_dim"), dt, envir = as.environment("package:mypackagename"))
,但收到cannot add bindings to a locked environment
错误
有什么想法吗?