Я пытаюсь ввести данные о температуре NA
в R. Это пространственно-временные данные, которые имеют 487 обсерваторий и 60 единиц времени (60 месяцев). Здесь я хочу заменить NA
, значение которого имеет наименьшее расстояние (ноль) от обсерватории NA
в том же месяце.Ошибка «замена имеет длину ноль» в R
Вот мой код R (temp_1 - это имя моих данных).
pos.min = function(v){ # find positive minimum index
v.na = v
v.na[v==0] = NA
return(which.min(v.na))
}
for (i in 1:60){
for (j in 1:sum(is.na(temp_1[i,]))){
na.index=which(is.na(temp_1[i,]))
dz.index=pos.min(dz[na.index[j],])
new=temp_1[i,dz.index]
temp_1[i,][is.na(temp_1[i,])][j]=new
}
}
Однако, когда я запускаю это я получаю сообщение об ошибке
Ошибка в temp_1 [я] [is.na (temp_1 [я,])] [у] = новое: замена имеет длина нулевой
я напечатал class(new)
и говорит data.frame, поэтому я изменил его в числовой по new=as.numeric(temp_1[i,dz.inex])
. Но дело доходит до той же ошибки.
Я не понимаю, почему я получаю это сообщение об ошибке ... Я очень ценю вашу помощь.
Что такое 'temp_1'? Пожалуйста, покажите небольшой воспроизводимый пример и ожидаемый результат. Думаю, вы можете попробовать 'library (zoo); библиотека (data.table), setDT (temp_1) [, distance: = na.aggregate (distance, FUN = min), by = month] ' – akrun