R:将组中的分类行值合并为单个值

R:将组中的分类行值合并为单个值,r,dplyr,R,Dplyr,我有一个数据帧,它的结构与下面的结构相似 名称 标签 A. 历史的 A. 喜剧片 B 悲惨的事 C 喜剧片 C 年轻人 以下是使用dplyr执行此操作的方法: library(dplyr) d %>% group_by(Name) %>% summarise(Label1 = list(Label)) Name Label1 <chr> <list> 1 A <chr [2]> 2 B

我有一个数据帧,它的结构与下面的结构相似

名称 标签 A. 历史的 A. 喜剧片 B 悲惨的事 C 喜剧片 C 年轻人
以下是使用dplyr执行此操作的方法:

library(dplyr) 

d %>%
    group_by(Name) %>%
    summarise(Label1 = list(Label)) 

  Name  Label1   
  <chr> <list>   
1 A     <chr [2]>
2 B     <chr [1]>
3 C     <chr [2]>
数据
d这里有一种使用dplyr的方法:

library(dplyr) 

d %>%
    group_by(Name) %>%
    summarise(Label1 = list(Label)) 

  Name  Label1   
  <chr> <list>   
1 A     <chr [2]>
2 B     <chr [1]>
3 C     <chr [2]>
数据
d
toString()
如果输出不需要作为
listcol

library(dplyr)

d %>% group_by(Name) %>% summarise(Label = toString(Label))

# A tibble: 3 x 2
  Name  Label              
  <chr> <chr>              
1 A     historical, comedy 
2 B     tragedy            
3 C     comedy, young adult
库(dplyr)
d%>%分组人(姓名)%>%总结(标签=字符串(标签))
#一个tibble:3x2
姓名标签
历史、喜剧
2 B悲剧
3 C喜剧,年轻人
toString()
如果输出不需要作为
listcol

library(dplyr)

d %>% group_by(Name) %>% summarise(Label = toString(Label))

# A tibble: 3 x 2
  Name  Label              
  <chr> <chr>              
1 A     historical, comedy 
2 B     tragedy            
3 C     comedy, young adult
库(dplyr)
d%>%分组人(姓名)%>%总结(标签=字符串(标签))
#一个tibble:3x2
姓名标签
历史、喜剧
2 B悲剧
3 C喜剧,年轻人

使用
聚合
来自
基本R

aggregate(Label ~ Name, d, FUN = toString)

使用
base R中的
aggregate

aggregate(Label ~ Name, d, FUN = toString)

您希望该列具体是什么?就一根线?字符串向量?字符串列表?@bouncyball字符串向量或字符串列表-我不介意格式本身,因为我可以在它们之间进行转换。您希望该列是什么?就一根线?字符串向量?字符串列表?@bouncyball字符串向量或字符串列表-我不介意格式本身,因为我可以在它们之间转换谢谢你的回答。您能解释一下为什么要使用
row.names=c(NA,-5L)
和一个结构来创建数据帧,以及它是如何起作用的吗?我修改了我的答案,以显示我是如何通过简单调用data.frame()初始化数据框的,并在summary()中使用list()返回一些数字。底部的部分来自
dput
的输出。检查数据中的标签是否是一个因素。如果它是一个因子,则应将其转换为字符。您可以“手动”或在调用
data.frame时指定
stringsAsFactors=FALSE
,谢谢!那太好了!谢谢你的回答。您能解释一下为什么要使用
row.names=c(NA,-5L)
和一个结构来创建数据帧,以及它是如何起作用的吗?我修改了我的答案,以显示我是如何通过简单调用data.frame()初始化数据框的,并在summary()中使用list()返回一些数字。底部的部分来自
dput
的输出。检查数据中的标签是否是一个因素。如果它是一个因子,则应将其转换为字符。您可以“手动”或在调用
data.frame时指定
stringsAsFactors=FALSE
,谢谢!那太好了!