R의 Mann Kendall 트렌드 테스트를 큰 크기 (약 1 백만)의 다른 크기의 시계열에 적용해야합니다. 나는 이미 특정 디렉토리의 모든 파일에서 시계열 (사실 숫자 목록)을 취한 다음 결과를 .txt 파일로 출력하는 스크립트를 만들었습니다.R 파일을 다른 크기의 배열에서 읽음
문제는 제가 1 백만 개의 시계열을 가지고있어서 1 백만 개의 파일을 만드는 것이 정확하지 않다는 것입니다. 그래서 모든 시계열을 하나의 .txt 파일 (예 : "#"와 같은 기호로 구분)에 넣으면 관리가 더 용이해질 수 있다고 생각했습니다. 이 R에 ("#"둘 사이) 등의 시리즈를 추출하고 분석을 적용 할 수 있으며,
1
2
4
5
4
#
2
13
34
#
...
궁금 해요 : 그래서 나는이 같은 파일이?
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)
}
이러한 접근 방식의 작품을하지만 문제는 계산을 위해 나이를 취하고 있다는 점이다 :
편집
다음 @acesnap 힌트는이 코드를 사용하고 있습니다. 더 빠른 접근 방법을 제안 할 수 있습니까?
새로운 질문이있는 경우 가장 좋은 방법은 새 질문을 다시 게시하는 것입니다. 특히 이미 받아 들여진 대답이 있기 때문에. –
@PaulHiemstra 당신의 힌트를 따를 것입니다 – markusian
병이 목에 달려 있는지 여부에 달려 있습니다. 루핑 인 경우 data.table 패키지의 data.table을 살펴볼 수 있습니다. MannKendall 테스트 인 경우 속도를 높이는 것이 더 어려울 수 있습니다. –