首页 > 解决方案 > 按事件发生的时间序列提取

问题描述

我正在寻找一个代码来提取每个试验开始的列(称为时间)的时间间隔(500ms),以便我可以计算每个试验实际时间的前 500ms 的基线(以毫秒为单位)在两个连续的行之间该列会有所不同,因为数据集是下采样的,并且只报告了变化,所以我不能只计算一定数量的行来定义时间间隔。

我试过这个:

baseline <- labchart   %>%
dplyr::filter(time[1:(length(labchart$time)+500)])   %>%
dplyr::group_by(Participant, trialonset)

但只收到如下错误消息:错误:参数 2 过滤条件不评估为逻辑向量而且我不确定,如果 (time[1:(length(labchart$Time)+500)]) 真的会给我第一个每次试验 500 毫秒?

标签: rtimefilterintervalsbaseline

解决方案


很难确切地知道你在这里问什么。我认为您要问的是如何将观察分组为 500 毫秒的周期,仅给出观察之间的时间间隔。

假设数据如下所示:

``` r
labchart <- data.frame(time = sample(50:300, 20, TRUE), data = rnorm(20))

labchart
#>    time        data
#> 1   277 -1.33120732
#> 2   224 -0.85356280
#> 3    80 -0.32012499
#> 4   255  0.32433366
#> 5   227 -0.49600772
#> 6   248  2.23246918
#> 7   138 -1.40170795
#> 8   115 -0.76525043
#> 9   159  0.14239351
#> 10  207 -1.53064873
#> 11  139 -0.82303066
#> 12  185  1.12473125
#> 13  239 -0.22491238
#> 14  117 -0.55809297
#> 15  147  0.83225435
#> 16  200  0.75178516
#> 17  170 -0.78484405
#> 18  208  1.21000589
#> 19  196 -0.74576650
#> 20  184  0.02459359

然后我们可以为总经过时间创建一个列,以及观察属于哪个 500 毫秒周期,如下所示:

library(dplyr)

labchart %>% 
  mutate(elapsed = lag(cumsum(time), 1, 0), 
         period = 500 * (elapsed %/% 500))

#>    time        data elapsed period
#> 1   277 -1.33120732       0      0
#> 2   224 -0.85356280     277      0
#> 3    80 -0.32012499     501    500
#> 4   255  0.32433366     581    500
#> 5   227 -0.49600772     836    500
#> 6   248  2.23246918    1063   1000
#> 7   138 -1.40170795    1311   1000
#> 8   115 -0.76525043    1449   1000
#> 9   159  0.14239351    1564   1500
#> 10  207 -1.53064873    1723   1500
#> 11  139 -0.82303066    1930   1500
#> 12  185  1.12473125    2069   2000
#> 13  239 -0.22491238    2254   2000
#> 14  117 -0.55809297    2493   2000
#> 15  147  0.83225435    2610   2500
#> 16  200  0.75178516    2757   2500
#> 17  170 -0.78484405    2957   2500
#> 18  208  1.21000589    3127   3000
#> 19  196 -0.74576650    3335   3000
#> 20  184  0.02459359    3531   3500

推荐阅读