使用样条插值方法'monoH.FC'出现问题

5

我对使用单调样条感兴趣,但当R尝试使用它时,我遇到了一个错误。我正在使用R 2.12.0,并且方法'monoH.FC'说它已经被支持自2.8.0。

可重现的示例(对于更复杂的(x,y)关系相同的结果)

x<-1:2
y<-1:2
spline(x,y,method="monoH.FC")
    Error in spline(x, y, method = "monoH.FC") : invalid interpolation method

我尝试了什么

?spline 返回:

...
Usage:
...
        spline(x, y = NULL, n = 3*length(x), method = "fmm",
        xmin = min(x), xmax = max(x), xout, ties = mean)
...
Arguments:
  method: specifies the type of spline to be used.  Possible values are
      ‘"fmm"’, ‘"natural"’, ‘"periodic"’ and ‘"monoH.FC"’.
...

但是spline函数本身表明不支持“monoH.FC”方法:

...
method <- pmatch(method, c("periodic", "natural", "fmm"))
if (is.na(method)) 
    stop("invalid interpolation method")
...

问题

我如何在样条函数中使用 method='monoH.FC'?

1个回答

9
使用 splinefun;它支持 method=monoH.FC?spline 中的最后一个示例向您展示了如何使用它。
## An example of  monotone  interpolation
n <- 20
set.seed(11)
x. <- sort(runif(n)) ; y. <- cumsum(abs(rnorm(n)))
plot(x.,y.)
curve(splinefun(x.,y.)(x),                add=TRUE, col=2, n=1001)
curve(splinefun(x.,y., method="mono")(x), add=TRUE, col=3, n=1001)
legend("topleft", paste("splinefun( \"", c("fmm", "monoH.CS"), "\" )", sep=''),
         col=2:3, lty=1)

以下内容是否正确?为了获得类似于spline(x,y)结果的x,y对,我应该使用f <- splinefun(x,y,method= 'monoH.FC'); list(x=x, y=f(x)) - David LeBauer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接