[R] How to pass a variable to a function which use variable name as a parameter

William Dunlap wdunlap at tibco.com
Tue May 26 17:30:35 CEST 2015


One way to use variable names in functions like Predict() that
do not evaluate their arguments in the standard way is to use
do.call() along with as.name().  E.g.,
  varName<-"age"
  do.call("Predict", list(fit, as.name(varName), np=4))})
gives the same result as
  Predict(fit, age, np=4)



Bill Dunlap
TIBCO Software
wdunlap tibco.com

On Tue, May 26, 2015 at 3:14 AM, wong jane <jane.wong083 at gmail.com> wrote:

> There are functions which use variable names as parameters in some R
> packages. However, if the variable name is stored in another variable, how
> can I pass this variable to the function. Taking the "rms" package as an
> example:
>
> library(rms)
> n <- 1000
> age <- rnorm(n, 50, 10)
> sex <- factor(sample(c('female','male'), n,TRUE))
>
> y <- rnorm(n, 200, 25)
> ddist <- datadist(age, sex)
> options(datadist='ddist')
> fit <- lrm(y ~ age)
> Predict(fit, age, np=4)
> options(datadist=NULL)
>
> Here "age" was a variable name passed to Predict() function, but if "age"
> was stored in variable "var", that is, var <- "age", how can I pass "var"
> to Predict() function? The purpose is that I want to change the parameter
> of Predict()  in a loop.
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list