Re: [R] Referencing function name from within function

From: <rolf_at_math.unb.ca>
Date: Tue 03 Apr 2007 - 16:18:44 GMT


Wott about this then?

myfunction <- function(x){

        temp <- sys.calls()[[1]]
        nm <- temp[length(temp)]
        a  <- TRUE
        if (a){
                stop(paste(nm,"requires xyz!"))
        }

}

> myfunction()

Error in myfunction() : myfunction requires xyz!

> lapply(1:10,myfunction)
Error in FUN(c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)[[1]], ...) :

        myfunction requires xyz!

                                cheers,

                                        Rolf Turner
                                        rolf@math.unb.ca

===+===+===+===+===+===+===+===+===+===+===+===+===+===+===+===+===+===+=== Prof Brian Ripley wrote:

> This presumes a function is always called by name. Try
>
> > lapply(1:10, myfunction)
> Error in FUN(c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)[[1]], ...) :
> FUN requires xyz!
>
> to see a (simple case of) the problem.
>
> On Tue, 3 Apr 2007, rolf@math.unb.ca wrote:
>
> > I dunno much about such things, but a wee experiment seems to
> > indicate that the following structure does what you want:
> >
> > myfunction <- function(x){
> > nm <- as.character(match.call())[1]
> > a <- TRUE
> > if (a){
> > stop(paste(nm,"requires xyz!"))
> > }
> > }
> >
> > cheers,
> >
> > Rolf Turner
> > rolf@math.unb.ca
> >
> > ===+===+===+===+===+===+===+===+===+===+===+===+===+===+===+===+===+===+===
> > Original message:
> >
> >> For verbose coding I'd like to do something like:
> >>> myfunction <- function(x){
> >>> if (a){
> >>> stop(paste(myfunction_name_here,"requires xyz!")
> >>> }
> >> Is that possible?
> >
> > (Note: In R *all* things are possible!)
>
> I don't believe so.



R-help@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 and provide commented, minimal, self-contained, reproducible code. Received on Wed Apr 04 02:24:08 2007

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Tue 03 Apr 2007 - 17:30:57 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.