R语言如何移除字符串指定位置的特定内容obovate
实现方案
下面提供几种不同场景的写法,你可以根据自己的实际需求选择:
方法1:精准删除指定的obovate后缀
如果你的需求是仅删除字符串末尾的 obovate 内容,避免字符串中间出现该内容时被误删,可以用带结束符匹配的替换方法:
library(dplyr) library(stringr) df <- df %>% # $ 表示匹配字符串末尾,只有结尾的" obovate"会被删除 mutate(x = str_remove(x, " obovate$"))
不需要加载额外包的Base R写法:
df$x <- sub(" obovate$", "", df$x)
方法2:直接取空格分隔的第一个词汇
如果你的所有数据都是「目标内容+空格+待删除内容」的固定结构,不管后面待删除的内容是不是obovate都只需要第一个部分,可以直接用取词函数,写法更简洁:
library(dplyr) library(stringr) df <- df %>% # word函数默认按空格分隔,取第1个元素 mutate(x = word(x, 1))
对应的Base R写法:
df$x <- sapply(strsplit(df$x, " "), `[`, 1)
两种方法运行后都可以得到你想要的输出结果,不需要逐个匹配每个字符串写判断逻辑,适配性更高。
内容的提问来源于stack exchange,提问作者Anh
相关产品推荐
相关产品推荐

