滞后函数之和

Sum of lag functions

在一个人的行为任务数据中,我试图将目标出现的时钟时间 (data$onset) 和他们响应的反应时间 (data$Latency) 相加,以找到时钟时间他们在其中输入了回复。出于未来数据处理的原因,这些计算值必须放在 data$onset 列中,比目标出现在屏幕上时低两个值。在下面的示例中:

Item onset Latency
Prime 9.97 0
Target 10.70 0.45
Mask 11.02 0
Response NA 0

开始是刺激出现的任务秒数,延迟是对目标的反应时间。非目标的延迟将始终为 0,因为对象不响应它们。在开始下的“NA”中,我需要该值是目标开始+对目标的反应时间 (10.70+0.45) 的总和。这是我试过的代码:

data$onset=if_else(is.na(data$onset), sum(lag(data$onset, n = 2)+lag(data$Latency, n = 2)), data$onset)

如果需要任何说明,请告诉我。

因为您使用了 if_else 我正在添加一个 dplyr 解决方案;

library(dplyr)

data %>%
mutate(onset=ifelse(is.na(onset),lag(onset,n =2)+lag(Latency,n = 2),onset))

输出;

  Item     onset Latency
  <fct>    <dbl>   <dbl>
1 Prime     9.97    0   
2 Target   10.7     0.45
3 Mask     11.0     0   
4 Response 11.1     0   

另请注意,如果您想坚持自己的语法;

data$onset=if_else(is.na(data$onset), lag(data$onset, n = 2)+lag(data$Latency, n = 2), data$onset)