【发布时间】:2019-06-03 14:29:59
【问题描述】:
我有一个相对较大的 DF,现在需要一种方法来使列变成行。
我的 DF 看起来像这样:
AID FNAME FVALUE
1 A 10
1 B 12
1 C 16
2 A 10
2 E 4
3 F 10
3 G 13
等等。并非所有行都具有所有特征。所以我喜欢这样的最终输出:
AID A B C D E F G H
1 10 12 16 NULL NULL NULL NULL
2 10 NULL NULL NULL 4 NULL NULL NULL
3 NULL NULL NULL NULL NULL 10 13 NULL
我已经尝试过传播:
wide_DF <- unite_DF %>% spread(FNAME, FVALUE)
但我得到了错误:
错误:每行输出必须由唯一的键组合标识。
我还尝试将数据分组并插入一个新的唯一列:
unite_DF %>% group_by(AID) %>% mutate(ind = row_number()) %>% spread(FNAME, FVALUE) %>% select(Name, Value)
但是在这里我也遇到了同样的错误。我该怎么做?
【问题讨论】: