The function generates a basis matrix including a linear un-transformed variable. It is meant to be used internally by onebasis and crossbasis and not directly run by the users.

lin(x, intercept=FALSE)

Arguments

x

the predictor variable. Missing values are allowed.

intercept

logical. If TRUE, an intercept is included in the basis matrix, namely a vector of 1's.

Details

The function returns a basis matrix with the un-transformed variable, optionally with an intercept if intercept=TRUE.

Value

A matrix object of class "lin". It contains the attribute intercept.

Author

Antonio Gasparrini <antonio.gasparrini@lshtm.ac.uk>

Note

This function is mainly used internally thorugh onebasis to create basis matrices. It is not exported in the namespace, and can be accessed through the triple colon operator ':::' (see Examples below).

See also

onebasis to generate basis matrices and crossbasis to generate cross-basis matrices.

See dlnm-package for an introduction to the package and for links to package vignettes providing more detailed information.

Examples

### simple use (accessing non-exported function through ':::')
dlnm:::lin(1:5)
#>      1
#> [1,] 1
#> [2,] 2
#> [3,] 3
#> [4,] 4
#> [5,] 5
#> attr(,"intercept")
#> [1] FALSE
#> attr(,"class")
#> [1] "lin"    "matrix"
dlnm:::lin(1:5, intercept=TRUE)
#>      1 2
#> [1,] 1 1
#> [2,] 1 2
#> [3,] 1 3
#> [4,] 1 4
#> [5,] 1 5
#> attr(,"intercept")
#> [1] TRUE
#> attr(,"class")
#> [1] "lin"    "matrix"

### use as an internal function in onebasis (note the centering)
b <- onebasis(chicagoNMMAPS$pm10, "lin")
summary(b)
#> BASIS FUNCTION
#> observations: 5114 
#> range: -3.049835 356.1768 
#> df: 1 
#> fun: lin 
#> intercept: FALSE 
model <- glm(death ~ b, family=quasipoisson(), chicagoNMMAPS)
pred <- crosspred(b, model, at=0:60)
plot(pred, xlab="PM10", ylab="RR", main="RR for PM10")