R中行的条件合并

Conditional merging of row in R

我想在 .txt 文件中为我的数据集的每个文件创建单独的转录本,其中包含两个冒号 LABEL(单词)和 FILE(单词所在的文件)。

所以我的 DF(样本)看起来像这样:

file        label
 bla_1       _
 bla_1       so
 bla_1       we
 bla_1     know
 bla_1     that
 bla_1     right 
 bla_2     my
 bla_2     mummy
 bla_2     said
 bla_2     so

我可以轻松地将所有内容粘贴在一起:

text <-paste(unlist(sample), collapse =" ");text

结果是

"_ so we know that right my mummy said so"

但是我如何插入一个 if 语句来根据 file 的值生成单独的文本(并将它们保存在单独的文件中)?

bla_1     "_ so we know that right" 
bla_2     "my mummy said so"

谢谢

可复制的 DF

sample <- data.frame(file=c(rep("bla_1",6),rep("bla_2",4)),label=c("_","so","we" ,"know" ,"that" ,"right" ,"my" ,"mummy" ,"said" ,"so"))

正如 lukeA 指出的那样,我只是忘记了在这种情况下可以完美运行的聚合函数。

aggregate(label~file, sample, paste, collapse = " ") 

Tidyverse 方法:

library(dplyr)

sample %>%
  group_by(file) %>% 
  summarise(paste(label, collapse = " "))