Я пишу функцию R, используя lapply для применения преобразования разности лагов к набору переменных. Функция вычисляет первое различие по числу различных лагов, и lapply используется для перебора набора данных, содержащего много переменных. Вот код ниже.
## dt is my original dataset with 18 columns and 52 rows(observations)
## the dataframe df will contain the lagged differenced variables
df<-data.frame(index=c(1:nrow(dt)))
for(i in 1:4){
df[paste0(names(dt), '_lag',i,'_diff1')]<-
lapply(dt,function(x) diff (x,lag=i,differences=1))
}
Однако приведенный выше код выдает ошибку следующим образом:
Ошибка в [<-.data.frame
(*tmp*
, paste0 (names (dt), "_lag", i, "_diff1")): элемент замены 1 имеет 51 строку, необходимо 52
Я не могу понять, где может быть ошибка, потому что мой набор данных dt имеет 52 строки, а не 51, как в сообщении об ошибке. Любая помощь будет оценена.