r - 计算 R 中范围内的数值

标签 r dataframe range

这是玩具示例。我要比较ra ,给出范围(例如时间)和 ev ,表示事件发生的时间。

我想新建一个专栏hitsra这表示每个范围内发生了多少事件。

ra <- data.frame(a=c(0, 250, 500, 750), b=c(250, 500, 750, 900))
ra
    a   b
1   0 250
2 250 500
3 500 750
4 750 900

ev <- data.frame(events=c(1,1,1,1,1), time=c(100, 200, 450, 550, 600))
ev
  events time
1      1  100
2      1  200
3      1  500
4      1  550
5      1  600

结果应该是这样的。
data.frame(a=c(0, 250, 500, 750), b=c(250, 500, 750, 900), hits=c(2,1,2,0))
    a   b hits
1   0 250    2
2 250 500    1
3 500 750    2
4 750 900    0

最佳答案

我们可以在 data.table 中使用非对等连接

library(data.table)
setDT(ev)[ra, .(hits = .N), on = .(time > a, time < b), by = .EACHI]

关于r - 计算 R 中范围内的数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54814910/

相关文章:

python - Pyspark:dataframe describe() 和 summary() 是如何实现的

swift - NSdate 范围总删除周末 Swift

c++ - 使用其范围版本从容器中删除元素的最佳方法

r - 过滤向量的非零元素的管道/dplyr友好方式

使用 R 检索期刊论文的引用

r - Matlab 的等效 R 代码 : How to calculate residual values for the linear model?

javascript - 文本范围选择空在 IE 7,8 中不起作用

r - 使用 R 中的 str_count 函数计算多个模式

r - 使用 R 中 `purrr::pmap` 内的数据帧了解 `mutate`

python - Pandas - 根据具有重复名称的重复键值对列 reshape 数据框列