如果单元格等于数据框中的值,则创建一个新行

Create a new line if cells equals a value from a dataframe

使用这个数据框:

            ##    doc_id paragraph_id sentence_id token_id       token      lemma  upos xpos
            ## 1    doc1            1           1        1 Linguistics Linguistic  NOUN  NNS
            ## 2    doc1            1           1        2        also       also   ADV   RB
            ## 3    doc1            1           1        3       deals       deal  NOUN  NNS
            ## 4    doc1            1           2        1   Something   something NOUN  NNS
            ## 5    doc1            1           2        2        Else        else NOUN  NNS

我想在 .txt 文件中包含这样的内容:

Linguistic_NNS also_R deal_NN
something_NN else_NN

除了使用此代码:

paste(text_anndf$lemma, "_", text_anndf$xpos, collapse = " ", sep = "")

我有这个:

Linguistic_NN also_R deal_NN something_NN else_NN

因为它没有考虑“sentence_id”值。我需要使用 If 或类似的东西吗?谢谢

是这样的吗?

library(dplyr)
df %>%
    unite(col = lemma_and_position,
          lemma, xpos, sep = '_') %>%
    group_by(sentence_id) %>%
    summarise(lemma_and_position = paste(lemma_and_position, collapse = ' '))

关于@stompers 的建议:使用 dput(your_data) 提供测试数据总是有帮助的!