Я пытаюсь использовать функцию «lowess» в базовом пакете для сглаживания вектора. Вопрос в том, что вектор имеет только одно значение NA, но после сглаживания "lowess" появляются еще 4 NA. Я искал, и кто-то предложил использовать «lowess» в пакете «gplots». Я пробовал, но получил те же результаты.
x1 <- c(NA, 19.93621, 17.64789, 17.78488, 17.11141, 18.4648, 19.62629, 17.5737, 17.48582, 18.76946, 19.57138, 19.62812, 2.982385, -0.1320513)
x2 <- lowess(x1)
x2
$x
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14
$y
[1] NA NA NA NA NA 18.988279 18.563642 18.407768 18.496699 17.922510 14.419999 10.861535 7.179754 3.145612
Один из способов — удалить NA в x1, чтобы после сглаживания в x2$y не осталось NA.
x2 <- lowess(x1[-1])
x2
$x
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13
$y
[1] 18.7079309 18.4481273 18.2491632 18.0847709 18.0946245 18.1282192 18.1497617 17.9298278 14.6441882 10.9465210 7.2635244 3.5247529 -0.3021372
Но мне просто интересно, почему появляется больше NA и есть ли более простой способ? Благодарю вас!
lowess
выполняет локальную полиномиальную подгонку. Если у вас есть NA в локальной области точки, эти значения NA будут распространяться на близлежащие значения. - person MrFlick   schedule 15.06.2015