【问题标题】:R: How to convert a dataframe into a nxn matrixR:如何将数据帧转换为 nxn 矩阵
【发布时间】:2016-07-09 13:54:52
【问题描述】:

我有四个元素 a、b、c 和 d。我有一个函数可以计算这四个元素之间的距离并将其写入文件。该算法仅计算唯一比较(即 a 和 b 而不是 b 和 a)。以下是文件的结构。

ele1 ele2 dist
a b 2.4
a c 0.5
a d 3.4
b c 0.9
b d 12.5
c d 8.3

我正在尝试将其写入 nxn 矩阵。我使用了以下代码。

dataFile = read.csv("distanceMeasure.csv")
dataToMatrix <- xtabs(dist ~ ele1 + ele2, data = dataFile )

但是我得到的是;

 b c d
a
b
c

我要找的是

  a b c d
a
b
c
d

【问题讨论】:

    标签: r matrix


    【解决方案1】:

    我们可以转换为factor 并指定levels 以便给出所有组合,即使列中缺少某些级别。

    Un1 <-  as.character(unique(unlist(dataFile[1:2])))
    dataFile[1:2] <- lapply(dataFile[1:2], factor, levels = Un1)
    xtabs(dist ~ ele1 + ele2, data = dataFile)
    #        ele2
    #ele1    a    b    c    d
    #   a  0.0  2.4  0.5  3.4
    #   b  0.0  0.0  0.9 12.5
    #   c  0.0  0.0  0.0  8.3
    #   d  0.0  0.0  0.0  0.0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多