将具有范围或值的字符转换为 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
,检索数字 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 <- c("1:3","4")
我有一个字符向量c("1:3","4")
,我需要的是c(1,2,3,4)
。
到目前为止我所做的是获取原始向量的每个元素,在 "1:3"
上使用 strsplit
,检索数字 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 <- c("1:3","4")