在库函数内部分配变量

时间:2019-01-07 20:30:56

标签: r

我正在尝试创建一个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错误

有什么想法吗?

0 个答案:

没有答案