使用dplyr包重塑数据

时间:2015-09-01 18:21:57

标签: r dplyr

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包.. 这是可能的? 我整天都想着这个,我不能忘记这个问题而且这让我很伤心。)

非常感谢你的帮助

2 个答案:

答案 0 :(得分:2)

使用开发版tidyrinstall),它只是

nest(DF, Item)

将是

library(dplyr)
DF %>% group_by(ID) %>%
  summarise(Item = list(Item))

答案 1 :(得分:1)

我接近就是这样:

DF %>%
  group_by(ID) %>%
  summarise(V1 = paste0(Item, collapse = ", "))