在 R 中按多个条件拆分字符
Split character by multiple criteria in R
我有一个这样的向量:
c("variable1+variable2 + variable3*variable4+ variable5")
我想将他的字符串拆分成一个向量,例如:
c("variable1", "variable2", "variable3", "variable4", "variable5")
重要提示1:注意有两种分隔符; + 和 *。
重要提示 2:请注意,有时我想得到的单词和分隔符之间有一个空格 space,而其他时候没有空格 spaces.
在base R
中,我们可以使用strsplit
out <- strsplit("variable1+variable2 + variable3*variable4+ variable5",
"\s*[*+]\s*")[[1]]
-输出
out
[1] "variable1" "variable2" "variable3" "variable4" "variable5"
结构是
dput(out)
c("variable1", "variable2", "variable3", "variable4", "variable5"
)
您可以将 stringr
包与
一起使用
library(stringr)
a <- c("variable1+variable2 + variable3*variable4+ variable5")
str_split(str_squish((str_replace_all(a, regex("\W+"), " "))), " ")
输出:
[1] "variable1" "variable2" "variable3" "variable4" "variable5"
另一个基础 R 选项使用 strsplit
+ trimws
> s <- c("variable1+variable2 + variable3*variable4+ variable5")
> trimws(unlist(strsplit(s, "\*|\+", perl = TRUE)))
[1] "variable1" "variable2" "variable3" "variable4" "variable5"
我有一个这样的向量:
c("variable1+variable2 + variable3*variable4+ variable5")
我想将他的字符串拆分成一个向量,例如:
c("variable1", "variable2", "variable3", "variable4", "variable5")
重要提示1:注意有两种分隔符; + 和 *。 重要提示 2:请注意,有时我想得到的单词和分隔符之间有一个空格 space,而其他时候没有空格 spaces.
在base R
中,我们可以使用strsplit
out <- strsplit("variable1+variable2 + variable3*variable4+ variable5",
"\s*[*+]\s*")[[1]]
-输出
out
[1] "variable1" "variable2" "variable3" "variable4" "variable5"
结构是
dput(out)
c("variable1", "variable2", "variable3", "variable4", "variable5"
)
您可以将 stringr
包与
library(stringr)
a <- c("variable1+variable2 + variable3*variable4+ variable5")
str_split(str_squish((str_replace_all(a, regex("\W+"), " "))), " ")
输出:
[1] "variable1" "variable2" "variable3" "variable4" "variable5"
另一个基础 R 选项使用 strsplit
+ trimws
> s <- c("variable1+variable2 + variable3*variable4+ variable5")
> trimws(unlist(strsplit(s, "\*|\+", perl = TRUE)))
[1] "variable1" "variable2" "variable3" "variable4" "variable5"