单独保存模拟数据集(速度+内存限制)


star*위위
2025-03-15 12:23:11 (2天前)
  1. 我正在处理一个非常大的(比如两百万个)模拟数据集,这些数据集是在for-loop中创建的并且以2000个组的形式列出。我想在某处保存所有10002000数据集列表,...

2 条回复
  1. 0# 日耀九洲 | 2019-08-31 10-32



    正如F.Priv茅提到的,如果你需要保存这些文件,最好使用saveRDS。在这种情况下,您没有进行冗余保存和加载。




    1. 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’))
      }

    2. </code>


    在这个特定的数据模拟中,我会尽量避免循环。一次生成所有数据(或至少部分生成),然后使用索引列存储到data.frame。就像是:




    1. 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)

    2. </code>


    但是,我认为这不是您真正的数据模拟,了解您为什么要模拟1k 2k数据集列表至关重要?他们都需要在分开的名单中吗?所有都是平等模拟?等等…


登录 后才能参与评论