繁体   English   中英

将3列数据帧转换为矩阵 - 更改类似列的名称

[英]Convert 3 columns dataframe to a matrix - Change the names of similar column

我有一个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

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

使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM