Мне нужно применить тренд-тест Манна Кендалла в R к большому количеству (около 1 миллиона) временных рядов разных размеров.Я создал файл .txt, например, так:
1 2
1 4
1 5
2 4
2 55
3 2
3 4
3 5
3 4
3 55
...
Каждый номер первого столбца идентифицирует определенный временной ряд.Чтобы получить статистику, я использую этот код:
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)
}
Этот подход работает, но проблема в том, что он требует времени для вычислений.Временные ряды состоят максимум из 800 элементов (только несколько, остальные короче), поэтому я думаю, что основная горловина бутылки находится в цикле.Можете ли вы предложить более быстрый подход?