Я застрял с, вероятно, глупой и легко решаемой проблемой.
У меня есть триггер, который кодирует 1 при нажатии клавиши компьютера (и) и 0 при отпускании клавиши. Мне нужно идентифицировать начало и конец каждого триггера (т.е. первый и последний 1) и заменить 1 между ними на 0. Запись данных - это время (непрерывно, t ниже) и значение (электродермальная активность, значение). Чтобы обработать данные быстрее, мне нужно их предварительно обработать, то есть определить 1, соответствующую началу и концу интересующего окна.
Пожалуйста, найдите пример кода:
t <- seq(0.1,10,0.1)
value <- rnorm(length(t), mean=1, sd=2)
trig <- c(rep(0,20),rep(c(rep(1,10), rep(0,10)),4))
id <- 1:length(t)
ожидаемый результат:
trig_result <- c(rep(0,20), rep(c(1, rep(0,8),1,rep(0,10)),4)); length(trig_result)
Использование дубликата идентифицирует только первую 1 и последнюю, но не промежуточное значение. Я видел похожий пост, но ни один из них не решает проблему идентификации.
Я смотрю на функцию dplyr, но не могу понять, как заменить 1 на 0, чтобы завершить фазу предварительной обработки. Мы будем благодарны за вашу помощь.
С уважением,