【发布时间】:2015-12-29 02:50:34
【问题描述】:
我有某种索引,例如:
index <- 1:100
我还有一个“排除区间”/范围列表
exclude <- data.frame(start = c(5,50, 90), end = c(10,55, 95))
start end
1 5 10
2 50 55
3 90 95
我正在寻找一种有效的方法(在 R 中)来删除属于 exclude 数据框范围内的所有索引
所以期望的输出是:
1,2,3,4, 11,12,...,48,49, 56,57,...,88,89, 96,97,98,99,100
我可以迭代地执行此操作:遍历每个排除间隔(使用ddply)并迭代地删除落在每个间隔中的索引。但是有没有更有效的方法(或功能)来做到这一点?
我正在使用library(intervals) 来计算我的间隔,我找不到执行此操作的内置函数。
【问题讨论】:
-
您的范围是否总是不重叠且按递增顺序排列?
-
我使用 library(intervals) -
interval_union()来确保我的间隔不重叠。这似乎也对它们进行了排序。