RE: [R] Recall() and sapply()

From: McGehee, Robert <>
Date: Thu 31 Mar 2005 - 00:14:29 EST

I doubt it's possible to use Recall inside a sapply like this. sapply (and lapply) make a copy of the function (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:



-----Original Message-----
From: Robin Hankin [] Sent: Wednesday, March 30, 2005 3:28 AM
Subject: [R] Recall() and sapply()


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

______________________________________________ mailing list
PLEASE do read the posting guide!

______________________________________________ mailing list
PLEASE do read the posting guide!
Received on Thu Mar 31 00:24:39 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:30:57 EST