【问题标题】:R append data to df columns by grep search (each pattern = new column) [closed]R通过grep搜索将数据附加到df列(每个模式=新列)[关闭]
【发布时间】:2021-10-31 03:57:43
【问题描述】:

有一个模式列表和一个单词列表。 我需要创建一个以列作为模式的数据框并将匹配项添加到其中。 假设模式是:

模式

单词列表是:

单词

df 应该是这样的:

arm end tale
arm end fairytale
armchair deadend
farm

【问题讨论】:

    标签: r regex dataframe


    【解决方案1】:

    rowrmap 的选项

    library(purrr)
    library(stringr)
    library(rowr)
    map(patterns,
          ~ str_subset(words, .x)) %>%
           invoke(cbind.fill, ., fill = NA) %>%
           setNames(patterns)
    

    -输出

         arm     end      tale
    1      arm     end fairytale
    2 armchair deadend      <NA>
    3     farm    <NA>      <NA>
    

    【讨论】:

      【解决方案2】:

      你可以试试:

      x <- lapply(setNames(patterns, patterns), grep, words, value = TRUE)
      as.data.frame(lapply(x, `length<-`, max(lengths(x))))
      #       arm     end      tale
      #1      arm     end fairytale
      #2 armchair deadend      <NA>
      #3     farm    <NA>      <NA
      

      【讨论】:

        猜你喜欢
        • 2019-12-15
        • 2021-03-02
        • 1970-01-01
        • 1970-01-01
        • 2016-10-25
        • 2019-04-09
        • 1970-01-01
        • 1970-01-01
        • 2019-01-22
        相关资源
        最近更新 更多