使用R为每个id的列中的每个单元格创建逗号分隔的字符值

使用R为每个id的列中的每个单元格创建逗号分隔的字符值,r,data-manipulation,R,Data Manipulation,我有两列ID和Product: ID Product A Clothing B Food A Food A Furniture C Food B Clothing 如何使用R创建一个数据框,其中每个ID的产品以逗号分隔,如下所示: ID Product A Clothing, Food, Furniture B Food, Clothing C Food, Clothing 我们可以使用其中一个GROUPBY函数。使用data.table,我们将“da

我有两列ID和Product:

ID  Product
A   Clothing
B   Food
A   Food
A   Furniture
C   Food
B   Clothing
如何使用R创建一个数据框,其中每个ID的产品以逗号分隔,如下所示:

ID  Product
A   Clothing, Food, Furniture
B   Food, Clothing
C   Food, Clothing

我们可以使用其中一个GROUPBY函数。使用
data.table
,我们将“data.frame”转换为“data.table”(
setDT(df1)
),按“ID”分组,我们
将“Product”的元素粘贴在一起。
toString
粘贴(,,collapse=,')
的包装器


dplyr
类似的选项是

library(dplyr
df1 %>%
   group_by(ID) %>%
   summarise(Product= toString(Product))

或者我们可以从
base R

aggregate(Product~ID, df1, FUN=toString)
#    ID                   Product
#  1  A Clothing, Food, Furniture
#  2  B            Food, Clothing
#  3  C                      Food

我们可以使用其中一个GROUPBY函数。使用
data.table
,我们将“data.frame”转换为“data.table”(
setDT(df1)
),按“ID”分组,我们
将“Product”的元素粘贴在一起。
toString
粘贴(,,collapse=,')
的包装器


dplyr
类似的选项是

library(dplyr
df1 %>%
   group_by(ID) %>%
   summarise(Product= toString(Product))

或者我们可以从
base R

aggregate(Product~ID, df1, FUN=toString)
#    ID                   Product
#  1  A Clothing, Food, Furniture
#  2  B            Food, Clothing
#  3  C                      Food

对于“ID”C,示例中没有“衣服”。对于“ID”C,示例中没有“衣服”。谢谢。这三种方法都很好,但给我留下了另一个挑战。每个ID都有重复的产品值。如何消除它们,请参见以下内容:ID产品A服装、服装食品、家具、家具B食品、食品、食品、服装C食品、服装、,Clothing@Madhumita请用代码检查编辑的注释。我想它应该能解决这个问题。在提出这个评论之前,我尝试过独特。它不起作用。我对你的答案投了赞成票。@Madhumita你能用这个例子更新你的帖子吗。从评论中复制/粘贴示例很困难。我将把它作为一个单独的问题。无法在90分钟内发布问题。你帮了大忙。再次感谢,谢谢。这三种方法都很好,但给我留下了另一个挑战。每个ID都有重复的产品值。如何消除它们,请参见以下内容:ID产品A服装、服装食品、家具、家具B食品、食品、食品、服装C食品、服装、,Clothing@Madhumita请用代码检查编辑的注释。我想它应该能解决这个问题。在提出这个评论之前,我尝试过独特。它不起作用。我对你的答案投了赞成票。@Madhumita你能用这个例子更新你的帖子吗。从评论中复制/粘贴示例很困难。我将把它作为一个单独的问题。无法在90分钟内发布问题。你帮了大忙。再次感谢。