Without knowing the strata function, a little code can do what you want:
d <- expand.grid(id = 1:35000, stratum = letters[1:10]) p = 0.1 dsample <- data.frame() system.time( for(i in levels(d$stratum)) { dsub <- subset(d, d$stratum == i) B = ceiling(nrow(dsub) * p) dsub <- dsub[sample(1:nrow(dsub), B), ] dsample <- rbind(dsample, dsub) } )
NTN, Kay
ps: the processor time on my relict laptop is 0.09!
source share