R:功能" lowess"与新生

时间:2015-06-15 05:46:16

标签: r na smooth

我正在尝试使用功能" lowess"在基础包中平滑向量。问题是矢量只有一个NA值,但在平滑后,#4; 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

一种方法是删除x1中的NA,这样在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

但我只是想知道为什么会出现更多的NAs并且有更简单的方法吗?谢谢!

1 个答案:

答案 0 :(得分:3)

lowess没有任何内置NA处理

  1. 长期做的最简单的事情可能是学会使用loess(其选项和设置稍有不同),它会处理NA值(它有{{1}像na.action那样的参数,默认情况下应该按照你想要的方式工作 - 但是,就语法而言,lm更像loess而不是lm。 1}})。

  2. 您可以直接在lowess的参数上使用na.omit;这样你就不需要具体确定哪些观察结果被省略了。