R: Extract the knots from a function basis or data object

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, Fn[["params"]] are returned. Else, nord <- norder(Fn); rng <- Fn[['rangeval']]; return c(rep(rng[1], nord), Fn[["params"]], rep(rng[2], nord))
`...` | ignored

### Details

The interior knots of a `bspline` basis are stored in the `params` component. The remaining knots are in the `rangeval` component, with multiplicity 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`,

### 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)
    ##
    ## knots.fdSmooth
    ##
    girlGrowthSm <- with(growth, smooth.basisPar(argvals=age, y=hgtf,
                                                 lambda=0.1))
    class(girlGrowthSm) # fdSmooth

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

    ##
    ## knots.df
    ##
    class(girlGrowth.fd <- girlGrowthSm$fd) # fd

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

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

    ##
    ## knots.basisfd
    ##
    class(girlGr.basisfd <- girlGrowth.fd$basis)

    girlKnots.basisfd  <- knots(girlGr.basisfd)
    girlKnots.basisfdA <- knots(girlGr.basisfd, interior=FALSE)

    stopifnot(all.equal(girlKnots.basisfd,  girlKnots.fd))
    stopifnot(all.equal(girlKnots.basisfdA, girlKnots.fdA))

[Package fda version 2.4.8 Index]