【问题标题】:Transform data frame into matrix: two columns as row and column names将数据框转换为矩阵:两列作为行名和列名
【发布时间】:2023-03-10 08:14:01
【问题描述】:

在 R 中,我的数据结构如下:

Ref  Url   Moves
1    1     345
1    2     765
1    3     923
1    4     233
2    1     6
2    2     23
2    3     345
2    4     354
3    1     954
...

我想将其转换为矩阵,然后将其绘制为图形,其中移动次数由线宽表示。 我需要将数据重塑为:

    1    2    3 ...
1   345  765  923
2   6    23   345
3   954  ...  ...
...

有人知道如何在 R 中自动执行此操作吗?如果它不仅可以处理第一列和第二列中的数字,还可以处理字符串,那就太好了,这样我就可以有一个矩阵,这个字符串作为行名和列名。

干杯, P

【问题讨论】:

  • @James 那应该是一个答案

标签: r graph matrix


【解决方案1】:

使用 acast 是一种方法。但我喜欢詹姆斯的方式

library(reshape2)
dd <- read.table(header = T, textConnection("Ref  Url   Moves
 1    1     345
 1    2     765
 1    3     923
 1    4     233
 2    1     6
 2    2     23
 2    3     345
 2    4     354
 3    1     954"))

acast(dd, Ref ~ Url)
Using Moves as value column: use value_var to override.
    1   2   3   4
1 345 765 923 233
2   6  23 345 354
3 954  NA  NA  NA

HTH

【讨论】:

    【解决方案2】:

    使用Iselzer提供的数据,可以使用xtabs

    xtabs(Moves~Ref+Url,dd)
       Url
    Ref   1   2   3   4
      1 345 765 923 233
      2   6  23 345 354
      3 954   0   0   0
    

    【讨论】:

      猜你喜欢
      • 2014-10-30
      • 1970-01-01
      • 1970-01-01
      • 2016-03-26
      • 1970-01-01
      • 1970-01-01
      • 2018-07-15
      • 2017-10-17
      • 2021-11-12
      相关资源
      最近更新 更多