将具有范围或值的字符转换为 R 中仅包含值的向量

Transform character with ranges or values into vector of only values in R

我有一个字符向量c("1:3","4"),我需要的是c(1,2,3,4)

到目前为止我所做的是获取原始向量的每个元素,在 "1:3" 上使用 strsplit,检索数字 13,形成向量 c(1,2,3) 然后通过与 4.

连接得到所需的向量

有没有更简单的方法?

提前致谢。

一个选项是eval(parse

unlist(lapply(v1, function(x) eval(parse(text=x))))

或者在strsplit之后,得到带有:

的序列
unlist(lapply(strsplit(v1, ":"), function(x) Reduce(`:`, as.numeric(x))))
#[1] 1 2 3 4

数据

v1 <- c("1:3","4")