select 一个相同字符前的多个字符 (R)
select multiple characters before one same character (R)
我的例子如下:
df <- data.frame(x = c("Santiria laevigata Blume f. laevigata",
"Santiria laevigata",
"Santiria laevigata Blume f. glabrifolia (Engl.) H.J.Lam"))
x
1 Santiria laevigata Blume f. laevigata
2 Santiria laevigata
3 Santiria laevigata Blume f. glabrifolia (Engl.) H.J.Lam
我只想通过使用 string
获得 Santiria laevigata
表示我将保留 Blume 之前的每个字母,换句话说,我将删除从 Blume
开始的所有字符.
对我有什么建议吗?
期望的输出
x
1 Santiria laevigata
2 Santiria laevigata
3 Santiria laevigata
您可以使用 sub
删除 Blume.*
中的所有内容。
df$y <- trimws(sub('Blume.*', '', df$x))
df$y
#[1] "Santiria laevigata" "Santiria laevigata" "Santiria laevigata"
只需使用gsub
df$x <- gsub("Blume.+", "", df$x)
x
1 Santiria laevigata
2 Santiria laevigata
3 Santiria laevigata
您可以尝试将 df 更改为
df <- c("Santiria laevigata Blume f. laevigata",
"Santiria laevigata",
"Santiria laevigata Blume f. glabrifolia (Engl.) H.J.Lam"))
然后输入如下
new_df <- substr(df,1,18)
new_df
[1] "Santiria laevigata" "Santiria laevigata" "Santiria laevigata"
我不知道如何使用
data.frame(x = c("abc"))
我们可以使用word
library(stringr)
word(df$x, 1, 2)
[1] "Santiria laevigata" "Santiria laevigata" "Santiria laevigata"
我的例子如下:
df <- data.frame(x = c("Santiria laevigata Blume f. laevigata",
"Santiria laevigata",
"Santiria laevigata Blume f. glabrifolia (Engl.) H.J.Lam"))
x
1 Santiria laevigata Blume f. laevigata
2 Santiria laevigata
3 Santiria laevigata Blume f. glabrifolia (Engl.) H.J.Lam
我只想通过使用 string
获得 Santiria laevigata
表示我将保留 Blume 之前的每个字母,换句话说,我将删除从 Blume
开始的所有字符.
对我有什么建议吗?
期望的输出
x
1 Santiria laevigata
2 Santiria laevigata
3 Santiria laevigata
您可以使用 sub
删除 Blume.*
中的所有内容。
df$y <- trimws(sub('Blume.*', '', df$x))
df$y
#[1] "Santiria laevigata" "Santiria laevigata" "Santiria laevigata"
只需使用gsub
df$x <- gsub("Blume.+", "", df$x)
x
1 Santiria laevigata
2 Santiria laevigata
3 Santiria laevigata
您可以尝试将 df 更改为
df <- c("Santiria laevigata Blume f. laevigata",
"Santiria laevigata",
"Santiria laevigata Blume f. glabrifolia (Engl.) H.J.Lam"))
然后输入如下
new_df <- substr(df,1,18)
new_df
[1] "Santiria laevigata" "Santiria laevigata" "Santiria laevigata"
我不知道如何使用
data.frame(x = c("abc"))
我们可以使用word
library(stringr)
word(df$x, 1, 2)
[1] "Santiria laevigata" "Santiria laevigata" "Santiria laevigata"