我遇到过这个问题,可以简单地描述如下:
v <- 1:10
beg <- c(2, 8)
end <- c(5, 9)
我想删除[2-5]和[8-9]值,这应该是:
d <- c(2, 3, 4, 5, 8, 9)
我的问题是如何使用d
和beg
有效地构建此类向量end
?
然后,
final <- v[!(v %in% d)]
谢谢。
答案 0 :(得分:3)
您可以使用seq
和Map
组合。
unlist(Map(seq, beg, end))
# [1] 2 3 4 5 8 9
Map
使用附加参数中的成对值调用其第一个参数(seq
),因此上述内容与:
unlist(lapply(seq_along(beg), function(i) seq(beg[i], end[i])))