我遇到这个问题,可以简单地描述如下:
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)]
谢谢。
发布于 2014-10-30 17:09:32
您可以使用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])))
https://stackoverflow.com/questions/26659175
复制相似问题