Say I have a pair of vectors, one consisting of variable names and the other containing Booleans that determine whether the variables in the first vector should be treated as factors or not:
a <- c("var1", "var2", "var3")
b <- c(TRUE, FALSE, FALSE)
Is there a way of automatically converting these two vectors into a formula of the form:
var0 ~ factor(var1) + var2 + var3
? If you have a technique of doing this that doesn't work with a second vector of Booleans, but requires some other way of specifying which variables are to be treated as factors, I'm still happy to hear your technique.
You could use ifelse
and reformulate
reformulate(ifelse(b, sprintf("factor(%s)",a), a), 'var0')
var0 ~ factor(var1) + var2 + var3