【问题标题】:Convert 3 columns dataframe to a matrix - Change the names of similar column将 3 列数据框转换为矩阵 - 更改相似列的名称
【发布时间】:2019-05-16 15:30:37
【问题描述】:

我有一个 3 列数据框,我尝试将其转换为矩阵。

Name    Act   value
Alex    C1     100
John    C2     100
Matt    C3     252
Alex    C1     456
Alex    C5     234
John    C5     456
Tina    C2     897
Matt    C2     652
Jorge   C1     344
Alex    C1     34
Matt    C3     231

我想要类似的东西:

       C1   C1.1  C1.2   C2   C3  C3.1   C4   C5
Alex   100   456   34                        234
John                     100                 456
Matt                     652  252  231  
Tina                     897
Jorge  344

我的意思是,因为我有相似的名字,使相同的行为具有不同/相同的分数,所以我不想将这些值相加并将它们放在矩阵的单元格中,而是为该行为生成一个单独的列(同时名称末尾的数字)。 谢谢

【问题讨论】:

    标签: r dataframe matrix


    【解决方案1】:

    使用tidyverse,您可以:

    df %>%
     group_by(Name) %>%
     mutate(Act = make.unique(Act)) %>%
     spread(Act, value)
    
      Name     C1  C1.1  C1.2    C2    C3  C3.1    C5
      <chr> <int> <int> <int> <int> <int> <int> <int>
    1 Alex    100   456    34    NA    NA    NA   234
    2 John     NA    NA    NA   100    NA    NA   456
    3 Jorge   344    NA    NA    NA    NA    NA    NA
    4 Matt     NA    NA    NA   652   252   231    NA
    5 Tina     NA    NA    NA   897    NA    NA    NA
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-27
      • 1970-01-01
      • 2023-03-10
      • 2021-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-25
      相关资源
      最近更新 更多