我正在尝试将来自当前按名称组织在不同行中的同一用户的文本数据粘贴在一起:
df <- read.table(header = TRUE, text = 'name text
"katy" "tomorrow I go"
"lauren" "and computing"
"katy" "to the store"
"stephanie" "foo and foos"')
得到的结果是:
df2 <- read.table(header=TRUE, text='name text
"katy" "tomorrow I go to the store"
"lauren" "and computing"
"stephanie" "foo and foos"')
建议?
答案 0 :(得分:5)
我们可以使用“{1}”或data.table
或dplyr
到aggregate
按“名称”分组的“文本”列。使用paste
,我们会在执行此操作之前将'data.frame'转换为'data.table'(data.table
)。
setDT(df)
使用library(data.table)
setDT(df)[, list(text=paste(text, collapse=' ')), by = name]
dplyr
或library(dplyr)
df %>%
group_by(name) %>%
summarise(text=paste(text, collapse=' '))
base R