# rcspline.restate

##### Re-state Restricted Cubic Spline Function

This function re-states a restricted cubic spline function in
the un-linearly-restricted form. Coefficients for that form are
returned, along with an R functional representation of this function
and a LaTeX character representation of the function.
`rcsplineFunction`

is a fast function that creates a function to
compute a restricted cubic spline function with given coefficients and
knots, without reformatting the function to be pretty (i.e., into
unrestricted form).

- Keywords
- regression, character, interface

##### Usage

```
rcspline.restate(knots, coef,
type=c("ordinary","integral"),
x="X", lx=nchar(x),
norm=2, columns=65, before="& &", after="\\",
begin="", nbegin=0, digits=max(8, .Options$digits))
```rcsplineFunction(knots, coef, norm=2, type=c('ordinary', 'integral'))

##### Arguments

- knots
vector of knots used in the regression fit

- coef
vector of coefficients from the fit. If the length of

`coef`

is \(\var{k}-1\), where`k`is equal to the`length(knots)`

, the first coefficient must be for the linear term and remaining \(k-2\) coefficients must be for the constructed terms (e.g., from`rcspline.eval`

). If the length of`coef`

is`k`, an intercept is assumed to be in the first element (or a zero is prepended to`coef`

for`rcsplineFunction`

).- type
The default is to represent the cubic spline function corresponding to the coefficients and knots. Set

`type = "integral"`

to instead represent its anti-derivative.- x
a character string to use as the variable name in the LaTeX expression for the formula.

- lx
length of

`x`

to count with respect to`columns`

. Default is length of character string contained by`x`

. You may want to set`lx`

smaller than this if it includes non-printable LaTeX commands.- norm
normalization that was used in deriving the original nonlinear terms used in the fit. See

`rcspline.eval`

for definitions.- columns
maximum number of symbols in the LaTeX expression to allow before inserting a newline (

`\\`) command. Set to a very large number to keep text all on one line.- before
text to place before each line of LaTeX output. Use

`"& &"`for an equation array environment in LaTeX where you want to have a left-hand prefix e.g.`"f(X) & = &"`or using`"\lefteqn"`.- after
text to place at the end of each line of output.

- begin
text with which to start the first line of output. Useful when adding LaTeX output to part of an existing formula

- nbegin
number of columns of printable text in

`begin`

- digits
number of significant digits to write for coefficients and knots

##### Value

`rcspline.restate`

returns a vector of coefficients. The
coefficients are un-normalized and two coefficients are added that are
linearly dependent on the other coefficients and knots. The vector of
coefficients has four attributes. `knots`

is a vector of knots,
`latex`

is a vector of text strings with the LaTeX
representation of the formula. `columns.used`

is the number of
columns used in the output string since the last newline command.
`function`

is an R function, which is also return in character
string format as the `text`

attribute. `rcsplineFunction`

returns an R function with arguments `x`

(a user-supplied
numeric vector at which to evaluate the function), and some
automatically-supplied other arguments.

##### See Also

##### Examples

```
# NOT RUN {
set.seed(1)
x <- 1:100
y <- (x - 50)^2 + rnorm(100, 0, 50)
plot(x, y)
xx <- rcspline.eval(x, inclx=TRUE, nk=4)
knots <- attr(xx, "knots")
coef <- lsfit(xx, y)$coef
options(digits=4)
# rcspline.restate must ignore intercept
w <- rcspline.restate(knots, coef[-1], x="{\\rm BP}")
# could also have used coef instead of coef[-1], to include intercept
cat(attr(w,"latex"), sep="\n")
xtrans <- eval(attr(w, "function"))
# This is an S function of a single argument
lines(x, coef[1] + xtrans(x), type="l")
# Plots fitted transformation
xtrans <- rcsplineFunction(knots, coef)
xtrans
lines(x, xtrans(x), col='blue')
#x <- blood.pressure
xx.simple <- cbind(x, pmax(x-knots[1],0)^3, pmax(x-knots[2],0)^3,
pmax(x-knots[3],0)^3, pmax(x-knots[4],0)^3)
pred.value <- coef[1] + xx.simple %*% w
plot(x, pred.value, type='l') # same as above
# }
```

*Documentation reproduced from package Hmisc, version 4.1-1, License: GPL (>= 2)*