HY, 我有这个数据集,我想重塑数据。
> dvd
ID Item
1 1 Sixth Sense
2 1 LOTR1
3 1 Harry Potter1
4 1 Green Mile
5 1 LOTR2
6 2 Gladiator
7 2 Patriot
8 2 Braveheart
9 3 LOTR1
10 3 LOTR2
11 4 Gladiator
12 4 Patriot
13 4 Sixth Sense
我想把数据放在这种格式中。
# ID V1
# 1: 1 Sixth Sense,LOTR1,Harry Potter1,Green Mile,LOTR2
# 2: 2 Gladiator,Patriot,Braveheart
# 3: 3 LOTR1,LOTR2
# 4: 4 Gladiator,Patriot,Sixth Sense
我知道我可以使用此代码
使用data.table执行此操作library(data.table)
as.data.table(DF)[, list(list(Item)), by = ID]
但我真的想用dplyr包.. 这是可能的? 我整天都想着这个,我不能忘记这个问题而且这让我很伤心。)
非常感谢你的帮助
答案 0 :(得分:2)
使用开发版tidyr
(install),它只是
nest(DF, Item)
将是
library(dplyr)
DF %>% group_by(ID) %>%
summarise(Item = list(Item))
答案 1 :(得分:1)
我接近就是这样:
DF %>%
group_by(ID) %>%
summarise(V1 = paste0(Item, collapse = ", "))