【问题标题】:how to use apply on cross correlation function in R如何在R中的互相关函数上使用apply
【发布时间】:2019-07-26 09:47:15
【问题描述】:

我正在尝试跨大型数据框的列对运行多个互相关函数。我已经编写了一个 for 循环来完成这项工作,但是计算时间很慢。

例如我想在 s1 和 s2 上运行 CCF 功能,然后在 s3 和 s4 上运行。真实数据有 >100 列和 >50,000 行,每对列都有唯一的行数。还运行蒙特卡罗模拟并绘制最大 CCF/滞后,但为简洁起见,我没有在此处包含该代码。我确实运行了一个分析器并且 CCF 似乎花费了最多的时间来运行,我希望应用函数可以帮助解决这个问题?

blahthresholdtest <- data.frame("S1"=1:8, "S2" = (8:1), "S3"= 1:8, "S4"= 9:2)

我写的for循环:

     k=1
  for(i in seq(1,ncol(blahthresholdtest),2)){
    ccftime <- ccf(blahthresholdtest[,i],blahthresholdtest[,i+1], type="correlation", na.action=na.omit)
    #adds one to k each loop to shift columns for analysis over
    k <- k + 1
  }

【问题讨论】:

    标签: r for-loop optimization apply cross-correlation


    【解决方案1】:

    我首先将ccfplot 参数设置为FALSE。然后我会检查ccf 的代码(这是纯R 代码),看看是否可以编写更简单的版本。如果这没有帮助,您可以检查是否可以并行运行循环;例如,请参阅 R 附带的包 parallel 的帮助。

    vignette("parallel") 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-11
      • 1970-01-01
      • 2018-01-21
      • 2018-11-15
      相关资源
      最近更新 更多