У меня есть большой фрейм данных в 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)
После создания факторов и временных переменных я создаю переменную ученика, основанную напо умолчанию параметры достоверности, собранные eye-tracker:
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 были собраны с использованием одного и того же оборудования и программного обеспечения.
Ошибка сохраняется, даже если сначала успешно создается нулевая переменная pupil_inter, используя следующий код:
data$pupil_inter <- NA
Заранее спасибоза любой предложенный совет.