我正在处理一个很大的点列表(每个点都有三个维度 x、y、z)。

我对 R 很陌生,所以我想知道表示这种信息的最佳方式是什么。据我所知,数组允许我表示任何多维数据,所以目前我正在使用:

> points<-array( c(1,2,0,1,3,0,2,4,0,2,5,0,2,7,0,3,8,0), dim=c(3,6) )
> points
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]    1    1    2    2    2    3  -- x dim
[2,]    2    3    4    5    7    8  -- y dim
[3,]    0    0    0    0    0    0  -- z dim

目的是执行一些计算来计算两组点之间的欧几里德距离,例如:
points1<-array( c(1,2,0,1,3,0,2,4,0,2,5,0,2,7,0,3,8,0), dim=c(3,6) )
points2<-array( c(2,2,0,1,4,0,2,3,0,2,4,0,2,6,0,2,8,0), dim=c(3,6) )

(在这个意义上的任何提示也将受到高度赞赏)

最佳答案

计算这样存储的两组点之间的欧几里德距离很容易:

sqrt(colSums((points1 - points2)^2))

尽管我建议将维度存储在列中。在这种情况下,代码变为:
sqrt(rowSums((points1 - points2)^2))

关于data-structures - 如何表示 R 中的点列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2760702/

10-12 22:14