【发布时间】:2020-06-18 12:19:52
【问题描述】:
所以,基本上我有一个包含大量“位置集”项目的数据框,我想为每组项目计算一个距离矩阵。我可以使用 for 循环并添加到列表中来做到这一点,但我认为必须有一个更优雅的方法使用 dplyr、purrr 或类似方法,但我对如何继续完全空白。
假设我的数据框如下所示:
df <- data.frame(
trial = c(rep(1,3),rep(2,5),rep(3,7)),
object_name = c("stapler", "bottle", "cup", "ball", "chocolate","tape","pen","bowl","stapler", "bottle", "cup", "ball", "tape","pen","bowl"),
posX = c(0.1,0.2,0.3,0.3,0.2,0.5,-0.4,-0.1,0.8,-0.3,-0.4,0.3,0.2,0,-0.2),
posY = c(-0.2,0.5,0.3,0.9,-0.3,-0.1,0,0.6,-0.7,-1,0.2,0.3,-0.8,0.6,1)
)
即对象名称可能会因试验而重叠,但每次试验的对象数量不同,我的目标是使用 posX 和 posY 为每个试验计算(欧几里德)距离矩阵。对于每次试验,这些矩阵将具有不同的大小,范围从 3x3 到 7x7。理想情况下,我可以将所有这些矩阵存储在数据框的 1 个单元格中,但我什至不确定这是否可能?如果没有,包含每个试验的距离矩阵的列表也可以。
感谢您的帮助!
【问题讨论】:
标签: r dataframe distance-matrix