从字符串格式“ c(\“ 4 \”,\“ 5 \”,\“ 7 \”,\“ 8 \”,\“ 9 \”,\“ 10 \”)“转换为字符

时间:2019-08-28 05:20:46

标签: r string vector type-conversion

如何转换字符串:

a <- "c(\"4\", \"5\", \"7\", \"8\", \"9\", \"10\")" 

到值向量:4、5、7、8、9、10吗?

1 个答案:

答案 0 :(得分:5)

不太喜欢的eval parse在这里很方便

as.integer(eval(parse(text = a)))
#[1]  4  5  7  8  9 10

或者您可能想按标题所示将其保留为字符。

eval(parse(text = a))
#[1] "4"  "5"  "7"  "8"  "9"  "10"

基于字符串的复杂程度,您还可以从字符串中提取所有数字。

stringr::str_extract_all(a, "\\d+")[[1]]

或在基数R

regmatches(a, gregexpr("\\d+", a))[[1]]