正如F.Priv茅提到的,如果你需要保存这些文件,最好使用saveRDS。在这种情况下,您没有进行冗余保存和加载。
jj <- 1:2000 for(i in 1:10){ for(j in jj){ dataA <- cbind(rnorm(j),rnorm(j),rnorm(j),rnorm(j),rnorm(j),rnorm(j),rnorm(j),rnorm(j)) dataB <- cbind(rnorm(j),rnorm(j),rnorm(j),rnorm(j),rnorm(j),rnorm(j),rnorm(j),rnorm(j)) data_list[[j]] <- dataA-dataB } saveRDS(data_list, paste0("Data", i, '.rds')) }
在这个特定的数据模拟中,我会尽量避免循环。一次生成所有数据(或至少部分生成),然后使用索引列存储到data.frame。就像是:
dataA <- replicate(8, rnorm(sum(jj))) dataB <- replicate(8, rnorm(sum(jj))) data_list <- dataA - dataB data <- as.data.frame(data_list) data[, "ind"] <- rep(jj, times = jj)
但是,我认为这不是您真正的数据模拟,了解您为什么要模拟1k 2k数据集列表至关重要?他们都需要在分开的名单中吗?所有都是平等模拟?等等...