请帮助以下示例:
a <- "1:4, 20:25, 30:40"
我需要将a
转换为数字向量,就像我在a
中没有引号一样,我的意思是:
> c(1:4, 20:25, 30:40)
[1] 1 2 3 4 20 21 22 23 24 25 30 31 32 33 34 35 36 37 38 39 40
答案 0 :(得分:0)
unlist(lapply(unlist(strsplit(a, ",")), function(x) eval(parse(text = x))))
# [1] 1 2 3 4 20 21 22 23 24 25 30 31 32 33 34 35 36 37 38 39 40
这里是基地R中另一种不使用eval(parse())
unlist(lapply(strsplit(x = a, split = ","), function(x){
unlist(lapply(strsplit(x = x, split = ":"), function(y)
as.numeric(y[1]):as.numeric(y[2])))
}))
# [1] 1 2 3 4 20 21 22 23 24 25 30 31 32 33 34 35 36 37 38 39 40