代码之家  ›  专栏  ›  技术社区  ›  Guido

如何表示R中的点列表

  •  3
  • Guido  · 技术社区  · 14 年前

    我对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) )
    

    (任何这方面的暗示也将不胜感激)

    4 回复  |  直到 14 年前
        1
  •  4
  •   Collin    14 年前

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

    尽管我支持在列中存储维度的建议。在这种情况下,代码变为:

    sqrt(rowSums((points1 - points2)^2))
    
        2
  •  4
  •   Yorgos    14 年前

    你可以用这个函数得到距离矩阵 dist 点数 数组

    dist(t(points),method = "euclidean")
    

    计算距离矩阵的另一个类似函数是 Dist 从程序包 amap

        3
  •  2
  •   Dirk is no longer here    14 年前

    CRAN Task View for Statial Data Analysis 必须提供——有很多合适的套餐。

        4
  •  1
  •   Glen_b    14 年前

    我建议使用矩阵转置,否则调用函数t()的次数可能会比其他方法多。

    除此之外,这可能是您想要的数据结构。当然,你可以用数据框来做,但我认为在这种情况下你最好不要这样做。