[R] Working with additional input for user defined function

Bogaso Christofer bogaso.christofer at gmail.com
Tue Feb 1 17:28:57 CET 2011


Thanks Eik for your help. So far I am able to do following things:

> fn1 = function(x, y, ...) { 
+             x1 <- x+y
+ if(is.null(names(list(...)))) 
+ res <- x1 
+ else
+ res <- get(names(list(...)))
+ return(res) 
+ 
+                 } ; 
> fn1(-2,2)
[1] 0
> fn1(-2,2, zz=3:5)
Error in get(names(list(...))) : object 'zz' not found

As you see, still I am far from the solution. How to pass the value of "..."
for further calculation?

Thanks,

-----Original Message-----
From: Eik Vettorazzi [mailto:E.Vettorazzi at uke.uni-hamburg.de] 
Sent: 01 February 2011 19:08
To: Bogaso Christofer
Cc: r-help at r-project.org
Subject: Re: [R] Working with additional input for user defined function

Hi Christofer,
just have a look at how other functions deal with this, e.g.
> plot

function (x, y, ...)
{
#*snip*
        hasylab <- function(...) !all(is.na(pmatch(names(list(...)),
            "ylab")))
#*snip*

got it?
cheers

Am 01.02.2011 11:29, schrieb Bogaso Christofer:
> Hi all, suppose I have following user defined function:
> 
>  
> 
> fn1 = function(x, y, ...) {
> 
>                                 z <- x+y; u=y^2
> 
>                                 # if something with name "add" exists 
> in the function argument then do some calculation and return that 
> calculated value, NOT z
> 
>                                 # if NOT then return z
> 
>                                 return(z)
> 
>                 }
> 
>  
> 
> As you see in the function definition, I put open space " '.' syntax " 
> , so that user can put additional argument. However here what I want 
> to do is, if user have additional input then above function would do 
> some ***special
> calculation*** and return that value.
> 
>  
> 
> How can I accomplice that?
> 
>  
> 
> Thanks and regards,
> 
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help at r-project.org mailing list
> 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.


--
Eik Vettorazzi
Institut für Medizinische Biometrie und Epidemiologie Universitätsklinikum
Hamburg-Eppendorf

Martinistr. 52
20246 Hamburg

T ++49/40/7410-58243
F ++49/40/7410-57790



More information about the R-help mailing list