You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言使用lag函数求和填充行为实验数据onset列NA值问题

问题诊断
  • 原代码的核心错误是多余调用了sum()函数:lag()返回的是和原数据集等长的向量,sum()会把所有偏移后的计算结果聚合为单个数值,导致所有NA行都会被填充为同一个错误的总和值,无法逐行匹配计算。
  • 无需额外加和运算,直接取偏移2行的onset与Latency相加即可。
正确实现代码

dplyr版本(适配你原来的写法)

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

Base R版本(无需加载额外包,性能更稳定)

# 定位所有onset为NA的行位置
na_pos <- which(is.na(data$onset))
# 直接取对应上移2行的数值计算后填充
data$onset[na_pos] <- data$onset[na_pos - 2] + data$Latency[na_pos - 2]

注:两种实现都默认每个onset为NA的反应行,其上数第2行都是对应的目标刺激行,和你给出的任务逻辑完全匹配。

内容的提问来源于stack exchange,提问作者Paul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 14:18:04