我需要將R中的Mann Kendall趨勢測試應用於大數量(大約100萬)不同大小的時間序列。我已經創建了一個腳本,它從某個目錄中的所有文件中獲取時間序列(實際上是一個數字列表),然後將結果輸出到.txt文件。R從文件大小不同的數組中讀取
問題是我有大約100萬的時間序列,所以創建100萬個文件並不完全好。所以我認爲把所有時間序列放在一個.txt文件中(例如用「#」之類的符號分隔)可能更易於管理。所以我有一個這樣的文件:
1
2
4
5
4
#
2
13
34
#
...
我想知道,是否有可能R中提取(在兩個「#」)等系列,然後應用分析?
編輯
繼@acesnap提示我正在使用此代碼:
library(Kendall)
a=read.table("to_r.txt")
numData=1017135
for (i in 1:numData){
s1=subset(a,a$V1==i)
m=MannKendall(s1$V2)
cat(m[[1]]," ",m[[2]], " ", m[[3]]," ",m[[4]]," ", m[[5]], "\n" , file="monotonic_trend_checking.txt",append=TRUE)
}
這種方法的作品,但問題是,它正在爲年齡計算。你能建議一個更快的方法嗎?
如果您有新問題,最好的做法是重新發佈一個新問題。特別是因爲已經有一個被接受的答案。 –
@PaulHiemstra我會按照你的提示 – markusian
這是否可以加快取決於瓶頸是什麼。如果是循環,你可以看看data.table包中的data.table。如果是MannKendall測試,那麼加速可能會更困難。 –