计算R

时间:2015-06-23 19:07:28

标签: r matrix distance cbind

我正在尝试计算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的新手;任何详细的解释非常感谢!!非常感谢你!

1 个答案:

答案 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)