`make_full_rank.Rd`

When writing user-defined methods for use with `weightit()`

, it may be necessary to take the potentially non-full rank `covs`

data frame and make it full rank for use in a downstream function. This function performs that operation.

```
make_full_rank(mat,
with.intercept = TRUE)
```

- mat
a numeric matrix or data frame to be transformed. Typically this contains covariates.

`NA`

s are not allowed.- with.intercept
whether an intercept (i.e., a vector of 1s) should be added to

`mat`

before making it full rank. If`TRUE`

, the intercept will be used in determining whether a column is linearly dependent on others. Regardless, no intercept will be included in the output.

`make_full_rank()`

calls `qr()`

to find the rank and linearly independent columns of `mat`

, which are retained while others are dropped. If `with.intercept`

is set to `TRUE`

, an intercept column is added to the matrix before calling `qr()`

. Note that dependent columns that appear later in `mat`

will be dropped first.

See example at `method_user`

.

Older versions would drop all columns that only had one value. With `with.intercept = FALSE`

, if only one column has only one value, it will not be removed, and it will function as though there was an intercept present; if more than only column has only one value, only the first one will remain.

An object of the same type as `mat`

containing only linearly independent columns.

```
set.seed(1000)
c1 <- rbinom(10, 1, .4)
c2 <- 1-c1
c3 <- rnorm(10)
c4 <- 10*c3
mat <- data.frame(c1, c2, c3, c4)
make_full_rank(mat) #leaves c2 and c4
#> c1 c3
#> 1 0 -0.38548930
#> 2 1 -0.47586788
#> 3 0 0.71975069
#> 4 1 -0.01850562
#> 5 0 -1.37311776
#> 6 0 -0.98242783
#> 7 1 -0.55448870
#> 8 0 0.12138119
#> 9 0 -0.12087232
#> 10 0 -1.33604105
make_full_rank(mat, with.intercept = FALSE) #leaves c1, c2, and c4
#> c1 c2 c3
#> 1 0 1 -0.38548930
#> 2 1 0 -0.47586788
#> 3 0 1 0.71975069
#> 4 1 0 -0.01850562
#> 5 0 1 -1.37311776
#> 6 0 1 -0.98242783
#> 7 1 0 -0.55448870
#> 8 0 1 0.12138119
#> 9 0 1 -0.12087232
#> 10 0 1 -1.33604105
```