от
Я пытаюсь интерполировать значения NA в матрице, содержащей первые 2 столбца с координатами (x и y) и 24 столбца с зависимыми от времени значениями. Поэтому я настроил цикл, который должен интерполировать значения NA для каждой строки на основе не менее двух значений в каждой строке (исключая координаты). Итак, я думаю, что моя проблема в том, что цикл for не переходит на следующий ряд или всегда переходит на первую ячейку? Я использую R-Studio версии 1.2.1335 и R-версии 3.4.4 в Windows 10 Полная матрица до строки "layer.24" и столбца 492528
         x         y            layer.1   layer.2   layer.3   layer.4  
    [1,] 562201.9 5723273       8148      7031      7219      5824    
    [2,] 562463.6 5723273       NA        NA        NA        NA        
    [3,] 562725.3 5723273       4188      NA        NA        4200        
    [4,] 562987.0 5723273       4237      NA        NA        NA         
    [5,] 563248.7 5723273       3468      NA        5277      4888    
    [6,] 563510.5 5723273       3310      NA        5277      5095    

for (i in 1:length(matrix[,1]))
{
if (sum(is.na(matrix[i,3:26])>1)) 
{matrix[i,3:26] = imputeTS::na.interpolation(matrix[i,3:26])}
}        
Поэтому я ожидал интерполированную матрицу, за исключением строки 4 в этом примере.              

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

1 Ответ

0 голосов
от
Мы можем работать следующим образом (сначала преобразуйте в
data.frame
(здесь он называется
df
)):
  to_replace
...