【发布时间】:2019-02-26 03:14:00
【问题描述】:
我正在寻找一种data.table 方法来潜在地消除双 for 循环。我正在尝试使用 DTW 算法将每个组与其他组进行比较。
这里是 MWE(未优化):
library(data.table)
library(SimilarityMeasures)
tt <- data.table(A=1:100,B=2:101,C=rep(1:4,each=25))
result <- list()
for(i in 1:4){
for(j in 1:4){
result[[4*i+j]] <- DTW(tt[C==i,cbind(A,B)],tt[C==j,cbind(A,B)])
}
}
result
A和B是一些变量,用作DTW算法的输入,C是分组变量。我试图在data.table 中提出一些结合.SD 或.BY 方法的lapply 解决方案,但失败了。目标是拥有比上述双 for 循环更快的函数(即使在并行运行时)。
非常感谢任何帮助。谢谢!
【问题讨论】:
标签: r loops data.table