извлечение временного ряда по началу события - PullRequest
1 голос
/ 13 февраля 2020

Я ищу код для извлечения временного интервала (500 мс) столбца (называемого временем) для каждого начала пробного использования, чтобы я мог вычислить базовую линию первых 500 мс фактического времени каждого пробного в мс между двумя последовательные строки столбца изменяются, поскольку набор данных подвергается пониженной выборке и сообщаются только изменения, поэтому я не могу просто подсчитать определенное количество строк для определения временного интервала.

Я пробовал это:

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

, но получаются только сообщения об ошибках типа: Ошибка: условие фильтра аргумента 2 не соответствует логическому вектору И я не уверен, что (time [1: (length (labchart $ Time) +500)]) действительно даст мне первые 500 мс каждого испытания?

1 Ответ

0 голосов
/ 13 февраля 2020

Трудно точно знать, что вы спрашиваете здесь. Я думаю , что вы спрашиваете, как группировать наблюдения в периоды 500 мс, учитывая только временные интервалы между наблюдениями.

Предположим, данные выглядят так: Затем мы можем создать столбец для общего прошедшего времени и периоду 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
...