我正在处理一个很大的点列表(每个点都有三个维度 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/