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

将具有范围或值的字符转换为R中仅值的向量,r,strsplit,R,Strsplit,我有一个字符向量c(“1:3”,“4”),我需要的是c(1,2,3,4) 到目前为止,我所做的是获取原始向量的每个元素,使用上的strsplit“1:3”,检索数字1和3,形成向量c(1,2,3),然后通过与4串联得到所需的向量 有没有更简单的方法 提前谢谢 一个选项是eval(parse unlist(lapply(v1, function(x) eval(parse(text=x)))) 或者在strsplit之后,使用获取序列: unlist(lapply(strsplit(v1, "

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

到目前为止,我所做的是获取原始向量的每个元素,使用
上的
strsplit
“1:3”
,检索数字
1
3
,形成向量
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
v1 <- c("1:3","4")