我有一个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
我的意思是,由于我使用相似的名称,使同一行为具有不同/相同的分数,因此,我不想将这些值相加并将其放入矩阵的单元格中,而是针对该行为生成单独的列(名称末尾的数字)。 谢谢
答案 0 :(得分:0)
使用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