Prior to using functions `X`

as predictors in a scalar-on-function regression, it is often
necessary to presmooth curves to remove measurement error or interpolate to a common grid. This
function creates a function to do this preprocessing depending on the method specified.

```
create.prep.func(
X,
argvals = seq(0, 1, length = ncol(X)),
method = c("fpca.sc", "fpca.face", "fpca.ssvd", "bspline", "interpolate"),
options = NULL
)
```

X

an `N`

by `J=ncol(argvals)`

matrix of function evaluations
\(X_i(t_{i1}),., X_i(t_{iJ}); i=1,.,N.\) For FPCA-based processing methods, these functions are
used to define the eigen decomposition used to preprocess current and future data (for example, in
`predict.pfr`

)

argvals

matrix (or vector) of indices of evaluations of \(X_i(t)\); i.e. a matrix with
*i*th row \((t_{i1},.,t_{iJ})\)

method

character string indicating the preprocessing method. Options
are `"fpca.sc"`

, `"fpca.face"`

, `"fpca.ssvd"`

, `"bspline"`

,
and `"interpolate"`

. The first three use the corresponding existing function;
`"bspline"`

uses an (unpenalized) cubic bspline smoother with `nbasis`

basis
functions; `"interpolate"`

uses linear interpolation.

options

list of options passed to the preprocessing method; as an example, options for `fpca.sc`

include `pve`

, `nbasis`

, and `npc`

.

a function that returns the preprocessed functional predictors, with arguments

The functional predictors to process

Indices of evaluation of `newX`

Any options needed to preprocess the predictor functions