小编son*_*.ra的帖子

子集由多个范围组成

我想得到一个介于多个范围之间的值列表.

library(data.table)
values <- data.table(value = c(1:100))
range <-  data.table(start = c(6, 29, 87), end = c(10, 35, 92)) 
Run Code Online (Sandbox Code Playgroud)

我需要结果只包含介于这些范围之间的值:

 results <- c(6, 7, 8, 9, 10, 29, 30, 31, 32, 33, 34, 35, 87, 88, 89, 90, 91, 92)
Run Code Online (Sandbox Code Playgroud)

我目前正在使用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]))}
Run Code Online (Sandbox Code Playgroud)

但实际数据集非常大,我正在寻找一种更有效的方法.

任何建议表示赞赏!谢谢!

r range subset data.table

3
推荐指数
2
解决办法
1376
查看次数

标签 统计

data.table ×1

r ×1

range ×1

subset ×1