as.formula in R doesn't seem to accept a name that starts with a number followed by _ -


how can avoid getting following error. as.formula() not seem take variable starting number , followed _ (underscore). generating these variables dynamically , @ stage not want go , change variable names.

lhsofformula = "25_dep" rhsofformula  = "predvar1+predvar2+10_predvar3" as.formula(paste(lhsofformula , " ~ ", rhsofformula )) 

error:

> as.formula(paste(lhsofformula , " ~ ", rhsofformula )) error in parse(text = x) : <text>:1:3: unexpected input 1: 25_      ^ 

you need wrap names in backticks, this

> lhsofformula <- "25_dep" > rhsofformula <- c("predvar1", "predvar2", "10_predvar3") > addq <- function(x) paste0("`", x, "`") > as.formula(paste(addq(lhsofformula) , " ~ ", paste(addq(rhsofformula),collapse=" + " ))) `25_dep` ~ predvar1 + predvar2 + `10_predvar3` 

i vaguely remember there's function creating formulas, formulate, maybe? can't find in quick search.

edit: @dwin, it's reformulate, helps response not predictors. here rhs changed have valid name code works:

> lhsofformula = "25_dep" > rhsofformula  = c("predvar1", "predvar2", "x10_predvar3") > reformulate(rhsofformula, lhsofformula) `25_dep` ~ predvar1 + predvar2 + x10_predvar3 

edit: applying formula directly data frame add backticks automatically, using first column response

> d <- data.frame(`25_dep`=1:5, predvar1=1:5, predvar2=1:5, `10_predvar3`=1:5,                    check.names=false) > formula(d) `25_dep` ~ predvar1 + predvar2 + `10_predvar3` 

the code function (stats:::formula.data.frame) can adapted; uses as.name this:

> lhsofformula <- "25_dep" > rhsofformula <- c("predvar1", "predvar2", "10_predvar3") > ns <- sapply(c(lhsofformula, rhsofformula), as.name) > formula(paste(ns[1], paste(ns[-1], collapse="+"), sep=" ~ ")) `25_dep` ~ predvar1 + predvar2 + `10_predvar3` 

Comments

Popular posts from this blog

blackberry 10 - how to add multiple markers on the google map just by url? -

php - guestbook returning database data to flash -

delphi - Dynamic file type icon -