There are a two ways to specify a casting formula: either as a string, or a list of quoted variables. This function converts the former to the latter.

parse_formula(formula = "...  ~ variable", varnames, value.var = "value")

Arguments

formula

formula to parse

varnames

names of all variables in data

value.var

name of variable containing values

Details

Casting formulas separate dimensions with ~ and variables within a dimension with + or *. . can be used as a placeholder, and ... represents all other variables not otherwise used.

Examples

reshape2:::parse_formula("a + ...", letters[1:6])
#> [[1]]
#> List of 6
#>  $ a: symbol a
#>  $ b: symbol b
#>  $ c: symbol c
#>  $ d: symbol d
#>  $ e: symbol e
#>  $ f: symbol f
#>  - attr(*, "env")=<environment: 0x55c4240b8cc0> 
#>  - attr(*, "class")= chr "quoted"
#> 
reshape2:::parse_formula("a ~ b + d")
#> [[1]]
#> List of 1
#>  $ a: symbol a
#>  - attr(*, "env")=<environment: 0x55c42438c740> 
#>  - attr(*, "class")= chr "quoted"
#> 
#> [[2]]
#> List of 2
#>  $ b: symbol b
#>  $ d: symbol d
#>  - attr(*, "env")=<environment: 0x55c42438c740> 
#>  - attr(*, "class")= chr "quoted"
#> 
reshape2:::parse_formula("a + b ~ c ~ .")
#> [[1]]
#> List of 2
#>  $ a: symbol a
#>  $ b: symbol b
#>  - attr(*, "env")=<environment: 0x55c424593ef0> 
#>  - attr(*, "class")= chr "quoted"
#> 
#> [[2]]
#> List of 1
#>  $ c: symbol c
#>  - attr(*, "env")=<environment: 0x55c424593ef0> 
#>  - attr(*, "class")= chr "quoted"
#> 
#> [[3]]
#>  list()
#>  - attr(*, "env")=<environment: 0x55c424593ef0> 
#>  - attr(*, "class")= chr "quoted"
#>