knots.fd {fda}R Documentation

Extract the knots from a function basis or data object

Description

Extract either all or only the interior knots from an object of class basisfd, fd, or fdSmooth.

Usage

## S3 method for class 'fd':
knots(Fn, interior=TRUE, ...)
## S3 method for class 'fdSmooth':
knots(Fn, interior=TRUE, ...)
## S3 method for class 'basisfd':
knots(Fn, interior=TRUE, ...)

Arguments

Fn an object of class basisfd or containing such an object
interior logical:
if TRUE, the first Fn[["k"]]+1 of Fn[["knots"]] are dropped, and the next Fn[["g"]] are returned.
Otherwise, the first Fn[["n"]] of Fn[["knots"]] are returned.
... ignored

Details

The interior knots of a bspline basis are stored in the params component. The remaining knots are in the rangeval component, with mulltiplicity norder(Fn).

Value

Numeric vector. If 'interior' is TRUE, this is the params component of the bspline basis. Otherwise, params is bracketed by rep(rangeval, norder(basisfd).

Author(s)

Spencer Graves

References

Dierckx, P. (1991) Curve and Surface Fitting with Splines, Oxford Science Publications.

See Also

fd, create.bspline.basis, knots.dierckx

Examples

x <- 0:24
y <- c(1.0,1.0,1.4,1.1,1.0,1.0,4.0,9.0,13.0,
       13.4,12.8,13.1,13.0,14.0,13.0,13.5,
       10.0,2.0,3.0,2.5,2.5,2.5,3.0,4.0,3.5)
if(require(DierckxSpline)){
   z1 <- curfit(x, y, method = "ss", s = 0, k = 3)
   knots1 <- knots(z1)
   knots1All <- knots(z1, interior=FALSE) # to see all knots
#
   fda1 <- dierckx2fd(z1)
   fdaKnots <- knots(fda1)
   fdaKnotsA <- knots(fda1, interior=FALSE)
   stopifnot(all.equal(knots1, fdaKnots))
   stopifnot(all.equal(knots1All, fdaKnotsA))
}

# knots.fdSmooth 
girlGrowthSm <- with(growth, smooth.basisPar(argvals=age, y=hgtf))

girlKnots.fdSm <- knots(girlGrowthSm) 
girlKnots.fdSmA <- knots(girlGrowthSm, interior=FALSE)
stopifnot(all.equal(girlKnots.fdSm, girlKnots.fdSmA[5:33]))

girlKnots.fd <- knots(girlGrowthSm$fd) 
girlKnots.fdA <- knots(girlGrowthSm$fd, interior=FALSE)

stopifnot(all.equal(girlKnots.fdSm, girlKnots.fd))
stopifnot(all.equal(girlKnots.fdSmA, girlKnots.fdA))


[Package fda version 2.1.1 Index]