我想获取多个范围之间的值列表。多个范围的子集
library(data.table)
values <- data.table(value = c(1:100))
range <- data.table(start = c(6, 29, 87), end = c(10, 35, 92))
我需要的结果只包括落在这些范围之间的值:但是实际
results <- c(6, 7, 8, 9, 10, 29, 30, 31, 32, 33, 34, 35, 87, 88, 89, 90, 91, 92)
我目前做这一个for循环,
results <- data.table(NULL)
for (i in 1:NROW(range){
results <- rbind(results,
data.table(result = values[value >= range[i, start] &
value <= range[i, end], value]))}
数据集非常大,我正在寻找更有效的方法。
任何建议表示赞赏!谢谢!
我是否忽略了一些东西,或者这对于“values”表中的多个/许多列的情况是不实际的?即有没有列出列的简单方法? –
使用便捷功能'%inrange%':'values [value%inrange%range]' – Henrik
@Henrik很好!包括在我的答案中(如果你想把它作为答案发布:继续,我会在这里删除它) – Jaap