【发布时间】:2016-10-17 16:50:22
【问题描述】:
我想计算两个矩阵的每对行的布雷-柯蒂斯距离。
到目前为止,我有一个for-loop,但解决方案根本不是最优的。
这是我想要执行的示例:
a <- matrix(runif(30), 3, 10)
b <- matrix(runif(30), 3, 10)
library(vegan)
d <- data.frame("bray" = 0)
for (i in 1:nrow(a)){
d[i, "bray"] <- vegdist(rbind(a[i, ], b[i, ]), method = "bray")
}
有没有快速的方法来实现这个操作?
【问题讨论】:
-
您可以查看非 for 循环解决方案,例如库
purrr中的map函数,但是当您正确标注 d 时,您已经看到了巨大的改进......所以d <- data.frame(bray=rep(0,nrow(a))).这样它就不会每次都打开得越来越多