Я пытаюсь интерполировать значения 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 в этом примере.