我正在尝试计算R中每个标记树数之间的欧几里德距离。我的数据集大约有43000行。我正在使用
mat.co <- cbind(co.trees$gx, co.trees$gy)
m <- as.matrix(head(dist(mat.co, diag = TRUE, upper = TRUE)))
as.dist(m, diag = TRUE, upper = TRUE)
我的问题是:
1)矩阵不会产生我想要的列名和行名。现在列和行名称是1,2,3等。我希望列名和行名都是树的标记号,这样我就可以找出相对距离。
此外,矩阵不会显示介于1和1之间的距离,这应该是0.这也导致后一部分出现问题,后者使用as.dist
。
2)当我应用as.dist
时,距离值与相应的标签号不匹配。现在,除了之前没有显示的0值之外,还缺少下一个值。
我在代码行#2中使用了head
,因为我收到了一条达到R内存限制的错误消息。我是R的新手;任何详细的解释非常感谢!!非常感谢你!
答案 0 :(得分:0)
我意识到以下几行代码可以用我想要的标签号产生距离值。
n <- dist(head(cbind(co.trees$gx, co.trees$gy)))
n <- as.matrix(n)
colnames(n) <- head(co.trees$tag)
rownames(n) <- head(co.trees$tag)