我在 R(数据)中有一个大型数据框,由 23 个 .gazedata 文件(每个主题一个)组成:
filenames <- list.files("~/Desktop/DUT Analyses 2019", pattern = "*.gazedata", full.names = TRUE)
ldf <- lapply(filenames, read_tsv)
data <- do.call("rbind", ldf)
创建因子和时间变量后,我根据眼动仪收集的默认有效性参数创建瞳孔变量:
data$DiameterPupilLeftEye[data$ValidityLeftEye != 0] <- NA
data$DiameterPupilRightEye[data$ValidityRightEye != 0] <- NA
data$pupil = rowMeans(select(data, DiameterPupilLeftEye, DiameterPupilRightEye), na.rm = TRUE)
现在,我需要创建一个插值瞳孔变量 (pupil_inter) 来将值插值到最大间隙 4:
data$pupil_inter<- na.approx(data$pupil, rule = 2, maxgap = 4)
但是,会出现以下错误:
Error in `$<-.data.frame`(`*tmp*`, pupil_inter, value = c(4.2120165, 4.20966425, :
replacement has 1810947 rows, data has 1810956
这些行金额每次都完全相同。
至关重要的是,如果我从预处理中排除主题 22 和 23 .gazedata 文件,后一个代码可以工作并且没有错误
我已尝试确定现有的“替换有 [x] 行,数据有 [y]”问题以帮助解决我的具体问题,但找不到相关的解决方案。所有 .gazedata 文件都是使用相同的硬件和软件收集的。
即使首先使用以下代码成功地创建了一个 null 瞳孔间变量,该错误仍然存在:
data$pupil_inter <- NA
提前感谢您提供的任何建议。