将字符串转换为向量
Convert string into vector
如何将此字符串转换为向量?
"c(HJ229, HJ230, HJ231)"
期望的结果是 "HJ229" "HJ230" "HJ231"
.
我试过使用 stringr
,但是 (
由于正则表达式而导致问题。
t <- "c(HJ229, HJ230, HJ231)"
strsplit(str_remove(t, "c"), "(")[[1]]
您需要使用 \
转义括号以通过 regex
删除它们,并提供多个模式以匹配由 |
(或)分隔的。
library(stringr)
t <- "c(HJ229, HJ230, HJ231)"
str_split(str_remove_all(t, "c|\(|\)"), ", ")[[1]]
#> [1] "HJ229" "HJ230" "HJ231"
由 reprex package (v2.0.1)
于 2022-02-25 创建
使用基数 R
:
t = "c(HJ229, HJ230, HJ231)"
strsplit(gsub("[c()]", "", t), ", ")[[1]]
[1] "HJ229" "HJ230" "HJ231"
使用stringr
:
library(stringr)
str_split(str_remove_all(t, "[c()]"), ", ")[[1]]
[1] "HJ229" "HJ230" "HJ231"
另一个可能的解决方案:
library(stringr)
s <-"c(HJ229, HJ230, HJ231)"
str_extract_all(s, "[A-Z]{2}\d{3}")[[1]]
#> [1] "HJ229" "HJ230" "HJ231"
我们可以试试
> scan(text = gsub("c\((.*)\)", "\1", s), what = "", quiet = TRUE, sep = ",")
[1] "HJ229" " HJ230" " HJ231"
如何将此字符串转换为向量?
"c(HJ229, HJ230, HJ231)"
期望的结果是 "HJ229" "HJ230" "HJ231"
.
我试过使用 stringr
,但是 (
由于正则表达式而导致问题。
t <- "c(HJ229, HJ230, HJ231)"
strsplit(str_remove(t, "c"), "(")[[1]]
您需要使用 \
转义括号以通过 regex
删除它们,并提供多个模式以匹配由 |
(或)分隔的。
library(stringr)
t <- "c(HJ229, HJ230, HJ231)"
str_split(str_remove_all(t, "c|\(|\)"), ", ")[[1]]
#> [1] "HJ229" "HJ230" "HJ231"
由 reprex package (v2.0.1)
于 2022-02-25 创建使用基数 R
:
t = "c(HJ229, HJ230, HJ231)"
strsplit(gsub("[c()]", "", t), ", ")[[1]]
[1] "HJ229" "HJ230" "HJ231"
使用stringr
:
library(stringr)
str_split(str_remove_all(t, "[c()]"), ", ")[[1]]
[1] "HJ229" "HJ230" "HJ231"
另一个可能的解决方案:
library(stringr)
s <-"c(HJ229, HJ230, HJ231)"
str_extract_all(s, "[A-Z]{2}\d{3}")[[1]]
#> [1] "HJ229" "HJ230" "HJ231"
我们可以试试
> scan(text = gsub("c\((.*)\)", "\1", s), what = "", quiet = TRUE, sep = ",")
[1] "HJ229" " HJ230" " HJ231"