[R] help on tapply using sample with differing sample-sizes

Jourdan Gold jgold at uoguelph.ca
Wed Dec 3 01:14:19 CET 2008


Hello, My question likely got buried so I am reposting it in the hopes that someone has an answer. I have thought more about the question and modified my question. I hope tha


my specific question is:

I am attempting to create a bootstrap procedure for a finite sample using the theory of Rao and Wu, JASA (1988) that replicates within each strata (h) n_h - 1 times.  To this end, I require a different sample size for each stratum. Unfortunately, it appears that the sample command which is used to obtain my resamples only allows a scalar for the sample size. i.e it does not currently work with a vector.

 Does any one have any suggestions as to how to get around this or if this is not possible, if there is another way to accomplish what I want to do. Perhaps, tapply is not the best way to go about getting what I want. if so what would all you strong programmers reccommend instead. I am thinking that perhaps loops may be the  only way to go.

raoboot <- function (datavar, statavar, weight,  nboot, ciqntl, ciqntu)
{
	i <- 1
sdatavar <- sort(datavar)
sstratavar <- sort(statavar)
sweight <- sort(weight)
 sdatavarwght <- sdatavar*sweight
 # stramn <- tapply(sdatavar, sstratavar, mean)
 meanvect <- rep(0, times = nboot)
   stratasize <- tapply(sdatavarwght, sstratavar, length)
   stratasizemone <- stratasize -1
 while (i < nboot) 
	{ #vector of resampled observations
		vectobsrestemp <- tapply(sdatavarwght, sstratavar, sample, replace = T, size = stratasizemone)
		vectobsres <- unlist(vectobsrestemp)
	meanvect[i]	<- mean(vectobsres)
i <- i + 1
}
		
	repvectboot <- rep(mean(meanvect), times = i)
	vb <- sum((repvectboot - meanvect)^2)/(i -1)
	lwrbndmnp <- quantile(meanvect, ciqntl)
	uppbndmnp <- quantile(meanvect, ciqntu)

	vb
}



More information about the R-help mailing list