【发布时间】:2021-10-28 08:58:40
【问题描述】:
我用for循环编写了一个函数,for循环使用load.Rdata。这是我的示例函数。
tmp_fun = function(list_dtaname){
for (ii in 1:length(list_dtaname)) {
filename0 = paste(list_dtaname[ii],'.RData',sep = '')
miceadds::load.Rdata(filename0, "dta00")
rm(dta00)
}
}
当我使用这个功能时
tmp_fun(samplelist)
我得到了这个结果
tmp_fun(list_pot_dtaname$out)
Warning messages:
1: In rm(dta00) : object 'dta00' not found
2: In rm(dta00) : object 'dta00' not found
3: In rm(dta00) : object 'dta00' not found
4: In rm(dta00) : object 'dta00' not found
5: In rm(dta00) : object 'dta00' not found
6: In rm(dta00) : object 'dta00' not found
7: In rm(dta00) : object 'dta00' not found
为什么该功能不起作用?
【问题讨论】:
-
我还没有创建 'dta00'
-
仍然有相同的警告.. 我试图对原始代码做的是通过使用 'miceadds::load.Rdata(filename0, "dta00")' 和 I在每次 for 循环迭代中对更新的“dta00”做一些事情
-
所以,我关心的不是 'rm(dta00)',我的代码似乎没有不断更新来自 load.Rdata 的数据
-
不使用函数也没问题
-
你可以试试
dta00 <- miceadds::load.Rdata2( filename= paste(list_dtaname[ii],'.RData',sep = '')); rm(dta00)