Вы ищете это, не уверены, но попробуйте это as.formula
с paste0
:
myfunc_formula <- function(covars){
return(as.formula(paste0('cvd ~ pm10 ', covars)))
}
, мы можем позже использовать этот вход для gam(myfunc_formula(covars), data = chicagoNMMAPS , family =poisson, na.rm=T)
,
## In case someone wants to return the summary of given gam model
myfunc_formula_v1 <- function(covars){
gam1 <- gam(as.formula(paste0('cvd ~ pm10 ', covars)), data = chicagoNMMAPS , family =poisson, na.rm=TRUE)
return(summary(gam1))
}
Также мы можем сделать его гибким, предоставляя параметры для ввода, такие как имя целевой переменной и т. Д. c.
, например, другая версия может быть:
myfunc_formula_v2 <- function(covars, target='cvd'){
return(as.formula(paste0(target, ' ~ pm10 ', covars)))
}
Вывод :
> myfunc_formula(covars)
cvd ~ pm10 + s(time, bs = "cr", fx = TRUE, k = 7)
дано covars = "+s(time,bs= 'cr',fx=TRUE,k=7)"