Skip to content

ask for help

5 messages · mohamed ghoneim, Gabor Grothendieck, Feng Qiu

22 days later
#
Hi everyone:
         I'm trying to compose a string dynamicly for the parameter input of 
some function. For example:
In package MASS, function lda() require to input the name of predictor 
variable. Let's say the 16th column is the predictor variable. Then we call 
the function like this: lda(V16~., data=mydata). I don't want to hard-code 
the call, instead, I would like to use a dynamic expression for this 
parameter so that I can use my program on different set of data.
        I guess there are some function that can do this, but I didn't find 
it in "Introduction to R" so far, could someone please tell me this kind of 
function? Thank you!

Best,

Feng
#
Try:

lda(iris[-5], iris[,5])
On 12/26/06, Feng Qiu <fqiu at gatech.edu> wrote:
1 day later
#
Hi Gabor:
          Thank you!  But it didn't work. Since lda() takes the variable 
name as the input parameter. So what I was trying to do is "make the name 
dynamically". I used sprintf() to generate a variable name, such as "V16". 
But it seems that the function doesn't recognize the generated name. For 
example, lda(V16,data=mydata) works, But,
lda(sprintf("V%d",k),data=mydata) does not work, where k=16.  So I guess the 
name generated by sprintf is not the parameter wanted. But I have no idea 
about it.

Best,

Feng


----- Original Message ----- 
From: "Gabor Grothendieck" <ggrothendieck at gmail.com>
To: "Feng Qiu" <fqiu at gatech.edu>
Cc: <r-help at stat.math.ethz.ch>
Sent: Wednesday, December 27, 2006 1:56 PM
Subject: Re: [R] How to write string dynamicly?
#
Try this:

idx <- match("Species", names(iris))
lda(iris[-idx], iris[,idx])
On 12/29/06, Feng Qiu <hustqiufeng at sohu.com> wrote:
That is not correct.  It takes the variable itself, not its name, as input.
That is not a valid argument sequence.  See ?lda