我想把字符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)) %>%
有什么建议吗?我们这里不需要ifelse
或str_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