r语言 - 根据位置删除字符



我想把字符obovate放到第二个位置

df <- data.frame(x = c("Antidesma obovate",
"Ardisia obovate", "Knema obovate", "Lauraceae obovate"))

期望输出

Antidesma
Ardisia
Knema
Lauraceae

我发现了一个主题类型回答我的问题(根据位置从字符串中删除字符)

但我需要调用特定的性格,我想删除。到目前为止,我只知道使用str_detect立即更改名称,例如

df %>% mutate(x= ifelse(str_detect(x, "Antidesma obovate"), "Antidesma ", x)) %>% 
有什么建议吗?

我们这里不需要ifelsestr_detect。相反,使用str_remove删除子字符串

library(dplyr)
library(stringr)
df %>% 
mutate(x = str_remove(x, "\s+obovate"))
x
1 Antidesma
2   Ardisia
3     Knema
4 Lauraceae

另一个选择是使用gsub:

gsub(" obovate", "", df$x)

我们可以从stringr包中使用word:

library(dplyr)
library(stringr)
df %>% 
mutate(x = word(x,1))

输出:

x
1 Antidesma
2   Ardisia
3     Knema
4 Lauraceae

相关内容

  • 没有找到相关文章

最新更新