[R] How to make a function aware of its own call arguments

sbihorel Sebastien.Bihorel at cognigencorp.com
Thu Mar 24 15:28:57 CET 2016


Hi,

Thanks for your suggestion.

missing(x) works only if x is not altered within the function, which is 
not the case in my actual function (which is more complex than the 
example function I send in my previous post).

Are you aware of any function what would query the original function 
call arguments no matter what happens in the function?

Sebastien

On 3/24/2016 8:47 AM, Jeff Newmiller wrote:
> Don't provide a default value for c in the parameter list. Then you 
> can use the missing() function to make decisions, including whether to 
> generate a default value for c or not.
> -- 
> Sent from my phone. Please excuse my brevity.
>
> On March 24, 2016 5:11:43 AM PDT, sbihorel 
> <Sebastien.Bihorel at cognigencorp.com> wrote:
>
>     Hi,
>
>     Please consider the following functions:
>
>     myf1 <- function(x,fun){
>         if (is.null(fun)){
>           x
>         } else {
>           do.call(fun, list(x))
>         }
>     }
>
>     myf2 <- function(a=1, b=2, fun=NULL, c=myfun1(b,fun)){
>
>         if (myf1(b,fun)>0 & <c was not provided in function call>){
>           c <- b
>         }
>         print(list(a,b,c))
>     }
>
>     myf2(a=2,b=3,fun=exp)
>     myf2(a=2,b=3,fun=exp,c=4)
>
>     I need to replace "<c was not provided in function call>" by some code
>     that would make myf2 aware of it own calls and of the fact that the c
>     argument was provided or not in the function calls.
>
>     Thanks for your help
>
>     Sebastien
>
>     ------------------------------------------------------------------------
>
>     R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>     https://stat.ethz.ch/mailman/listinfo/r-help
>     PLEASE d
>       o read
>     the posting guidehttp://www.R-project.org/posting-guide.html
>     and provide commented, minimal, self-contained, reproducible code.
>
-- Sebastien Bihorel Associate Director, Pharmacometrics Buffalo Office: 
+1-716-633-3463 ext. 323 | Website <http://www.cognigencorp.com> 
<http://www.simulations-plus.com/Default.aspx>



More information about the R-help mailing list