[R] Trouble passing list or non-list to function using ...

Jason Barnhart jasoncbarnhart at msn.com
Sat May 27 10:23:05 CEST 2006


Sorry about that. I'm trying to pass a "tag=value" argument to a function 
which creates a list using list(...).
Specifically, it's necessary for "tag" to become the name of the list 
component - I'm not sure I'm using the right nomenclature.

I can make the call work explicitly here.  But I would like to loop through 
a list and pass list values to the function instead.

    testme<-function(...){
        dotlist<-list(...)
        dotlist
    }

Here's the desired output.
     > testme(age=NA)
         $age
         [1] NA

Unfortunately, this doesn't work.
    nm<-age
    testme(nm=NA)
     $nm
     [1] NA

Please let me know if further clarification is needed.
I've tried various ways to pass the 'tag=value'; e.g. using list(nm=NA) and 
so on, with no success
Thanks again,
-jason


----- Original Message ----- 
From: "Gabor Grothendieck" <ggrothendieck at gmail.com>
To: "Jason Barnhart" <jasoncbarnhart at msn.com>
Cc: <r-help at stat.math.ethz.ch>
Sent: Friday, May 26, 2006 6:04 PM
Subject: Re: [R] Trouble passing list or non-list to function using ...


Its not clear from your post which of the tests does not give you
the desired output and what the desired output is in that case.

Just guessing but maybe you meant to use testlist[[i]] instead of 
testlist[i] in
the loop?


On 5/26/06, Jason Barnhart <jasoncbarnhart at msn.com> wrote:
> Hello,
>
> Simply put, I'm trying to call a function "testme" with value "age=NA". 
> I wish to use "dotlist<-list(...)"  inside the function and have dotlist 
> become:
> $age
> [1] NA
>
> I'm modifying existing code and need to minimize changing that code so 
> it's easiest to conform
> how I call the existing function.
>
> My sample code fragment, results, and R.version information are listed 
> below.   I've been searching
> for prior questions regarding this phenomena, but haven't quite figured 
> out how to do this.
>
> Thank you in advance,
> -jason
>
>
>
> ##BEGIN TEST CODE 
> ###########################################################
> testme<-function(...){
>
> dotlist<-list(...)
>
>    dotlist
>
> }
>
> nm<-"age"
>
> testme(age=NA)
>
> testme(nm=NA)
>
> testme(age=NA,age2=NA)
>
> testlist<-list("age","age2")
>
> for (i in 1:length(testlist)){
>
>    print(testme(testlist[i]))
>
> }
>
> ##END TEST CODE 
> #############################################################
>
> ##BEGIN RESULTS 
> #############################################################
> > testme<-function(...){
> +
> + dotlist<-list(...)
> +
> +     dotlist
> +
> + }
> >
> > nm<-"age"
> >
> > testme(age=NA)   *****This is what I'm really after****
> $age
> [1] NA
>
> >
> > testme(nm=NA)
> $nm
> [1] NA
>
> > #trying w/ 2 vars
> > testme(age=NA,age2=NA)
> $age
> [1] NA
>
> $age2
> [1] NA
>
> >
> > testlist<-list("age","age2")
> >
> > for (i in 1:length(testlist)){
> +
> +     print(testme(testlist[i]))
> +
> + }
> [[1]]
> [[1]][[1]]
> [1] "age"
>
>
> [[1]]
> [[1]][[1]]
> [1] "age2"
>
> ##END RESULTS 
> ###############################################################
>
> platform       i386-pc-mingw32
> arch           i386
> os             mingw32
> system         i386, mingw32
> status
> major          2
> minor          3.0
> year           2006
> month          04
> day            24
> svn rev        37909
> language       R
> version.string Version 2.3.0 (2006-04-24)
>
>        [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! 
> http://www.R-project.org/posting-guide.html
>



More information about the R-help mailing list