我需要将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测试,那么加速可能会更困难。 –