[R] vectorized "leave one out" analyses

Allan Strand stranda at cofc.edu
Mon Feb 3 20:29:05 CET 2003


Hi all,

I'm implementing a population genetic statistic that requires repeated
re-estimation of population parameters after a single observation has
been left out.  It seems to me that one could:

a) use looping in R,
b) use a vectorized approach in R,
c) loop in a dynamically loaded c-function,
d) or use an existing jackknife routine.

an untested skeleton of the code for  'a':

foo <- function(datfrm)
{
  retvec <- rep(0,nrow(datfrm))
  selvec <- rep(T,nrow(datfrm))
  for (i in 1:nrow(datfrm))
    {
       selvec[i] <- F
       retvec[i] <- popstat(datfrm[selvec]) 
       selvec[i] <- T
    }
  retvec
}

I suppose that 'd' is the easiest option if such a routine exists, but
I have not come across one by means of an archive search.  I'd like to
avoid 'a' because of efficiency, and 'c' because of additional coding
and linking steps.  I like the idea of 'b' because it would be nifty
and likely fast, though there may be memory issues.  I'm sure that
this is a general problem that somebody has solved in an elegant
fashion.  I'm just looking for the solution. 

-- 
Allan Strand,   Biology    http://linum.cofc.edu
College of Charleston      Ph. (843) 953-9189
Charleston, SC 29424       Fax (843) 953-9199




More information about the R-help mailing list