过滤在r中事件“ A”的时间范围内发生的事件

参加会议

我希望能够过滤事件“ A”之前5秒钟内发生的所有“ B”事件。甚至不确定从哪里开始。这是一些示例数据。

set.seed(123)
event_df <- tibble(time_sec = c(1:120)) %>% 
  sample_n(50) %>%
  arrange(time_sec) %>% 
  mutate(event = sample(c("A","B"), 
                        size = 50, 
                        replace = TRUE, 
                        prob = c(0.1,0.9)))

预期的输出将遵循

tribble(
  ~time_sec,  ~event,
  57, "B",
  90, "B",
  91, "B",
  92, "B",
  103, "B",
)

等等

谢谢!

阿克伦

一个选项dplyr是根据“事件”中“ A”值的出现创建分组列,获取分组值,lag以便每个块都具有前面的“ B”值和last值为“ A”,然后我们做filter通过取的差“time_sec”,其中它是“A”(last值)与所有其它和检查它是否小于或等于5

library(dplyr)
event_df %>%
    group_by(grp =  lag(cumsum(event == 'A'), default = 0)) %>% 
    filter((last(time_sec) - time_sec) <=5)
# A tibble: 14 x 3
# Groups:   grp [6]
#   time_sec event   grp
#      <int> <chr> <dbl>
# 1       57 B         0
# 2       60 A         0
# 3       90 B         1
# 4       91 B         1
# 5       92 B         1
# 6       93 A         1
# 7       96 B         2
# 8       98 B         2
# 9       99 A         2
#10      103 B         3
#11      107 A         3
#12      113 B         4
#13      115 A         4
#14      117 B         5

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

过滤第2部分中事件“ A”的时间范围内发生的事件

知道事件在更大时间范围内的某个时间段内发生频率的算法(熊猫)

拆分发生在当天范围内的事件

给定时间范围内事件的大概计数

如何过滤不在另一行中的事件值的特定时间范围内的数据框中的行?

在全球范围内发布事件

getEvents()返回不在我正在寻找的时间范围内的事件

使用TPL Dataflow处理指定时间范围内的所有文件更改事件

在 Jmeter 上运行事件 API 时,服务器正在更新旧时间范围内的事件

RxJava运算符,它在特定时间范围内从多个事件中抽取样本

如何查找在SQL中的预定义时间范围内短时间内发生的重复行

如果类别在给定日期范围内发生过多次,则列出事件

将 R 中在给定时间范围/周期内发生的事件分组

AS3在按钮(或其他任何事件)事件之后的一定时间范围内运行事件

过滤 Kibana 中 X 分钟内发生的事件

反应-在子组件范围内评估事件处理程序

T-SQL范围内的所有事件

计算 PHP 或 MySQL 范围内的最大重叠事件

Microsoft Graph SDK .NET获取范围内的事件

Zend Gdata日历检索日期范围内的事件

过滤时间范围内的所有天数

使用 R 在多个时间范围内求和

在Tidyverse中过滤事件数据的时间

在时间范围内弹性查找记录组中的文本

r 中的事件发生时间数据帧

如何使我的表格脚本在给定范围内的日历中创建多个事件?

在rails / ruby中查找搜索结果日期范围内的事件

事件未在正确的时间间隔内发生 c# timers

如何在Django中过滤特定时间范围内的对象