X
and updated pars
and randPars
to include any dummy-coded categorical or interaction variables.R/encoding.R
recodeData.Rd
Recodes the data and returns a list of the encoded design matrix (X
) as
well as two vectors (pars
and randPars
) with discrete (categorical)
variables and interaction variables added to X
, pars
, and
randPars
.
recodeData(data, pars, randPars)
The data, formatted as a data.frame
object.
The names of the parameters to be estimated in the model.
Must be the same as the column names in the data
argument. For WTP space
models, do not include price in pars
- it should instead be defined by
the scalePar
argument.
A named vector whose names are the random parameters and
values the distribution: 'n'
for normal or 'ln'
for log-normal.
Defaults to NULL
.
A list of the design matrix (X
) and two vectors (pars
and
randPars
) with discrete (categorical) variables and interaction variables
added.
library(logitr)
data(yogurt)
# Recode the yogurt data
result <- recodeData(
data = yogurt,
pars = c("price", "feat", "brand", "price*brand"),
randPars = c(feat = "n", brand = "n")
)
result$formula
#> ~price + feat + brand + price * brand
#> <environment: 0x11edded48>
result$pars
#> [1] "price" "feat" "brandhiland"
#> [4] "brandweight" "brandyoplait" "price:brandhiland"
#> [7] "price:brandweight" "price:brandyoplait"
result$randPars
#> feat brandhiland brandweight brandyoplait
#> "n" "n" "n" "n"
head(result$X)
#> price feat brandhiland brandweight brandyoplait price:brandhiland
#> 1 8.1 0 0 0 0 0.0
#> 2 6.1 0 1 0 0 6.1
#> 3 7.9 0 0 1 0 0.0
#> 4 10.8 0 0 0 1 0.0
#> 5 9.8 0 0 0 0 0.0
#> 6 6.4 0 1 0 0 6.4
#> price:brandweight price:brandyoplait
#> 1 0.0 0.0
#> 2 0.0 0.0
#> 3 7.9 0.0
#> 4 0.0 10.8
#> 5 0.0 0.0
#> 6 0.0 0.0