0

我试图减少计算数据集中所有变量之间的相关性所需的时间。它是一个庞大的数据集,超过 100K 列和超过 50K 行。每个变量都保存在自己的文件中,因此需要遍历文件。

我试图通过对行进行采样来减少计算时间。我选择了 1000 行,而不是使用所有 50K 行。

但是,无论我做 100 行还是 50,000 行,计算相关系数仍然需要相同的时间。我对 50 个变量进行了测试。

关于如何让这个任务运行得更快有什么建议吗?以我目前的计算能力,运行这个脚本可能需要一年多的时间。

下面是我的脚本:


set.seed(12, sample.kind = "Rounding")
ind <- sample(1:length(hdf5r::readDataSet(H5File$new(files[1],'r')[["d1"]])), 100)

system.time(
d <- as.big.matrix(foreach(a=files,.packages = c('hdf5r', 'doParallel'), .combine = 'cbind') %dopar% {
  
  tmp <- foreach(b=files, .combine = 'c') %do% {
    
      rvals <- rval(hdf5r::readDataSet(H5File$new(a,'r')[["d1"]])[ind],
      hdf5r::readDataSet(H5File$new(b,'r')[["d1"]])[ind])
      rvals
  }
  
  tmp
  
}))

4

0 回答 0