Skip to content
Back to formatted view

Raw Message

Message-ID: <CAF8bMcb-3yTCeEO93BbnsJyR9ASUD4yE8Mik_5VkiY5x32nnRg@mail.gmail.com>
Date: 2015-05-26T15:30:35Z
From: William Dunlap
Subject: How to pass a variable to a function which use variable name as a parameter
In-Reply-To: <CACnBwQu7aqGceHMVR1vZd2g-NXv_4ETNFSfoCTYEw+Rq0K6OnQ@mail.gmail.com>

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]]