【问题标题】:How to retain a specific word in a string throughout the column and remove all the rest?如何在整个列中保留字符串中的特定单词并删除所有其余单词?
【发布时间】:2018-08-25 11:58:19
【问题描述】:

我的数据框是这样的:

data <- data.frame(column = c("word1 word2 word3", "word2 word1", "word3 word2", "word1 word2", "word3", "word1 word2"))
data

  column
1 word1 word2 word3
2 word2 word1
3 word3 word2
4 word1 word2
5 word3
6 word1 word2

我想在它出现的所有行中保留“word1”部分,并删除这些字符串的其他部分。

我的首选输出是这样的:

  column
1 word1
2 word1
3 word3 word2
4 word1
5 word3
6 word1

我尝试了data$column %&gt;% str_replace("^[word1]*", " "),但这并没有达到我想要的效果。

【问题讨论】:

    标签: r stringr


    【解决方案1】:

    有可能

    library(tidyverse)
    data %>% mutate(column = str_replace(column, "^.*word1.*$", "word1"))
           column
    1       word1
    2       word1
    3 word3 word2
    4       word1
    5       word3
    6       word1
    

    或使用捕获组

    data %>% mutate(column = str_replace(column, "^.*(word1).*$", "\\1"))
    

    【讨论】:

      【解决方案2】:

      另一个选项检查word1 是否在列中,如果是则替换其余的。

      library(tidyverse)
      
      data <- data_frame(column = c("word1 word2 word3", "word2 word1", "word3 word2", "word1 word2", "word3", "word1 word2"))
      
      data %>% mutate(column = if_else(grepl("word1", column), "word1", column))
      #> # A tibble: 6 x 1
      #>   column     
      #>   <chr>      
      #> 1 word1      
      #> 2 word1      
      #> 3 word3 word2
      #> 4 word1      
      #> 5 word3      
      #> 6 word1
      

      reprex package (v0.2.0) 于 2018 年 8 月 25 日创建。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-03
        • 1970-01-01
        • 2014-07-03
        • 2014-02-26
        • 1970-01-01
        相关资源
        最近更新 更多