[R] Recall() and sapply()
McGehee, Robert
Robert.McGehee at geodecapital.com
Wed Mar 30 16:14:29 CEST 2005
I doubt it's possible to use Recall inside a sapply like this. sapply
(and lapply) make a copy of the function (FUN <- match.fun(FUN)) before
passing it inside an internal function (rval <- .Internal(lapply(X,
FUN)). So, while I'm not precisely sure how Recall is coded up, I bet
that once it is copied inside of sapply (and lapply), it loses the
context from which it was called.
I can think of a couple ways around this. First, you could construct a
for loop instead of a sapply and use Recall. Second, you could replace
Recall by just asking R what the name of the calling function is and
pass that in to sapply. Something like this should work:
sapply(n, match.fun(sys.call()[[1]]))
HTH,
Robert
-----Original Message-----
From: Robin Hankin [mailto:r.hankin at soc.soton.ac.uk]
Sent: Wednesday, March 30, 2005 3:28 AM
To: R-help at stat.math.ethz.ch
Subject: [R] Recall() and sapply()
Hi.
I'm having difficulty following the advice given in help(Recall).
Consider the two
following toy functions:
f1 <- function(n){
if(length(n)>1){return(sapply(n,f1))}
matrix(n,n,n)
}
f2 <- function(n){
if(length(n)>1){return(sapply(n,Recall))}
matrix(n,n,n)
}
f1() works as desired (that is, f(1:3), say, gives me a three element
list whose i-th element
is an i-by-i matrix whose elements are all i).
But f2() doesn't.
How do I modify either function to use Recall()? What exactly is
Recall() calling here?
--
Robin Hankin
Uncertainty Analyst
Southampton Oceanography Centre
European Way, Southampton SO14 3ZH, UK
tel 023-8059-7743
______________________________________________
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