R粘贴属于同一ID的数据框行
R paste data frame rows that belong to same id
我正在尝试将当前按名称组织在不同行中的同一用户的文本数据粘贴在一起:
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"')
建议?
我们可以使用 data.table
或 dplyr
或 aggregate
来 paste
按 'name' 分组的 'text' 列。使用 data.table
,我们在执行此操作之前将 'data.frame' 转换为 '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
aggregate(text~name, df, FUN= paste, collapse=' ')
我正在尝试将当前按名称组织在不同行中的同一用户的文本数据粘贴在一起:
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"')
建议?
我们可以使用 data.table
或 dplyr
或 aggregate
来 paste
按 'name' 分组的 'text' 列。使用 data.table
,我们在执行此操作之前将 'data.frame' 转换为 '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
aggregate(text~name, df, FUN= paste, collapse=' ')