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

时间:2018-07-07 03:30:59

标签: r strsplit

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

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

有没有更简单的方法?

先谢谢了。

1 个答案:

答案 0 :(得分:1)

一个选项是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")