簡體   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