0

我正在尝试计算 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 值之外,下一个值也丢失了。

head在代码行#2 中使用了,因为我收到了一条到达 R 内存限制的错误消息。我是 R 新手;非常感谢任何详细的解释!非常感谢!

4

1 回答 1

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)

于 2015-06-24T13:54:10.893 回答