【问题标题】:Calculate distance between each tag number in R计算R中每个标签号之间的距离
【发布时间】:2015-06-23 19:07:28
【问题描述】:

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

【问题讨论】:

  • 我发现如果我首先使用这个:as.dist(head(mat.co, diag= TRUE, upper = TRUE)),紧接着cbind,它实际上在行和列中给了我正确的标签号。但显示的值是标签号的 x 坐标。如何让 R 输入在相应列和行中计算的距离?
  • 下次如果您寻求帮助,请至少添加语言标签
  • @DavidArenburg 谢谢你的提醒。

标签: r matrix distance cbind


【解决方案1】:

我意识到以下代码行可以生成带有我想要的标签号的距离值。

n &lt;- dist(head(cbind(co.trees$gx, co.trees$gy)))

n &lt;- as.matrix(n)

colnames(n) &lt;- head(co.trees$tag)

rownames(n) &lt;- head(co.trees$tag)

【讨论】:

    猜你喜欢
    • 2021-09-08
    • 1970-01-01
    • 2018-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-25
    • 2018-08-07
    相关资源
    最近更新 更多