首页 > 解决方案 > 用一个特定的词替换整个字符串

问题描述

我在 df 中有这个专栏:

第 1 列
今天晴天
天气晴朗
今天不是很晴

期望的输出

第 1 列
晴天
晴天
不晴
df<-df%>%
  mutate(column_1=case_when(
    str_detect(column_1,"very sunny")~ "sunny",
    str_detect(column_1,"sunny")~ "sunny",
    str_detect(column_1,"not"&"sunny")~ " not sunny",
  )
         )

该代码适用于前两行,我们对第三行有更简单的条件,条件更复杂并给我一个错误。

我想确定该字符串中的一些关键字,它们不在一起(非常阳光)但它们是分开的(今天不是很阳光),并将它们作为提供所需输出的条件。也许我在语法上做错了什么。

标签: rstring-substitution

解决方案


df$column2 <- sub('(not )?.*(sunny).*', '\\1\\2', df$Column1)
df
               Column1   column2
1 very sunny day today     sunny
2         it was sunny     sunny
3 not very sunny today not sunny

推荐阅读