[R] Referencing function name from within function
rolf at math.unb.ca
rolf at math.unb.ca
Tue Apr 3 18:18:44 CEST 2007
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 at 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 at 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 at 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.
More information about the R-help
mailing list