[英]how to use apply on cross correlation function in R
我正在嘗試從大型數據幀跨列對運行多個互相關函數。 我已經寫了一個for循環來完成這項工作,但是計算時間很慢。
例如,我想在s1和s2上運行CCF功能,然后在s3和s4上運行。 實際數據有> 100列和> 50,000行,每對列都有唯一的行數。 還運行蒙特卡洛模擬並繪制最大CCF /滯后,但為簡便起見,我沒有在此處包含該代碼。 我確實運行了探查器,而CCF似乎花費了最多的時間,我希望apply函數可以幫助解決這個問題?
blahthresholdtest <- data.frame("S1"=1:8, "S2" = (8:1), "S3"= 1:8, "S4"= 9:2)
對於循環我寫了:
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
}
我首先將ccf
的plot
參數設置為FALSE
。 然后,我將檢查ccf
的代碼(這是純R代碼),看是否可以編寫更多的准系統版本。 如果那沒有幫助,您可以檢查是否可以並行運行循環; 例如,參見R附帶的parallel
軟件包的幫助。
vignette("parallel")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.