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

Charles C. Berry cberry at tajo.ucsd.edu
Wed Dec 3 03:02:46 CET 2008

On Tue, 2 Dec 2008, Jourdan Gold wrote:

> 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

But apparently, you have not "read the posting guide 
http://www.R-project.org/posting-guide.html and provide[d] commented, 
minimal, self-contained, reproducible code."

Still see


which likely will address you need.

Study the examples, and if that doesn't help, then come back with 
_reproducible_ code, i.e. something we can run rather than merely stare 



> 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
> }
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

Charles C. Berry                            (858) 534-2098
                                             Dept of Family/Preventive Medicine
E mailto:cberry at tajo.ucsd.edu	            UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego 92093-0901

More information about the R-help mailing list