【发布时间】:2020-10-16 13:59:06
【问题描述】:
如果有帮助,这与这个问题有关,在这里我迭代地创建 RData 对象 How to save R data object that has been created using assign()?
以下创建一些变量,每个变量将被分配一个随机值。 为变量赋值后,我将它们保存为唯一的 RData 对象。
然后,我销毁变量并尝试将 RData 对象重新加载回环境。
但是,由于某些原因,RData 对象没有加载到环境中,并且 load() 函数调用也没有返回任何错误。
set.seed(1990)
for (l in LETTERS) {
print(l)
SKU <- paste0('SKU_',l)
assign(paste0('arima_',SKU), runif(1,1,10))
# check assignment
print(get(paste0('arima_',SKU)))
# save RData
paste0('arima_',SKU) %>% save(file = paste0('arima_',SKU,'.RData'))
}
# remove variables
rm(list=ls())
# reload variables
allRData <- fs::dir_ls(path = '.', regexp = 'arima_')
allRData
# arima_SKU_A.RData arima_SKU_B.RData arima_SKU_C.RData arima_SKU_D.RData arima_SKU_E.RData
# arima_SKU_F.RData arima_SKU_G.RData arima_SKU_H.RData arima_SKU_I.RData arima_SKU_J.RData
# arima_SKU_K.RData arima_SKU_L.RData arima_SKU_M.RData arima_SKU_N.RData arima_SKU_O.RData
# arima_SKU_P.RData arima_SKU_Q.RData arima_SKU_R.RData arima_SKU_S.RData arima_SKU_T.RData
# arima_SKU_U.RData arima_SKU_V.RData arima_SKU_W.RData arima_SKU_X.RData arima_SKU_Y.RData
# arima_SKU_Z.RData
# load
lapply(allRData,load,.GlobalEnv)
> lapply(allRData,load,.GlobalEnv)
$arima_SKU_A.RData
[1] "."
$arima_SKU_B.RData
[1] "."
$arima_SKU_C.RData
[1] "."
$arima_SKU_D.RData
[1] "."
$arima_SKU_E.RData
[1] "."
$arima_SKU_F.RData
[1] "."
$arima_SKU_G.RData
[1] "."
$arima_SKU_H.RData
[1] "."
$arima_SKU_I.RData
[1] "."
$arima_SKU_J.RData
[1] "."
$arima_SKU_K.RData
[1] "."
$arima_SKU_L.RData
[1] "."
$arima_SKU_M.RData
[1] "."
$arima_SKU_N.RData
[1] "."
$arima_SKU_O.RData
[1] "."
$arima_SKU_P.RData
[1] "."
$arima_SKU_Q.RData
[1] "."
$arima_SKU_R.RData
[1] "."
$arima_SKU_S.RData
[1] "."
$arima_SKU_T.RData
[1] "."
$arima_SKU_U.RData
[1] "."
$arima_SKU_V.RData
[1] "."
$arima_SKU_W.RData
[1] "."
$arima_SKU_X.RData
[1] "."
$arima_SKU_Y.RData
[1] "."
$arima_SKU_Z.RData
[1] "."
【问题讨论】:
-
您可能希望将每个 arima 保存为 RDS 文件而不是 R 文件。 Load 基本上会加载保存的整个环境状态(仅包含一个 arima)。
-
不确定我是否理解,因为每个变量都有自己唯一的名称。这里没有一个“arima”对象。