Skip to content

random sampling with levels and with replacement

6 messages · Daniel Malter, taby gathoni, PIKAL Petr +1 more

#
If you want perfect equality, split the data in good and bad and sample from
the two samples individually.

On average, however, random sampling from the entire data will reproduce the
proportion of good and bad in the data.

hth,
Daniel



--
View this message in context: http://r.789695.n4.nabble.com/random-sampling-with-levels-and-with-replacement-tp3435494p3435592.html
Sent from the R help mailing list archive at Nabble.com.
#
Hi

r-help-bounces at r-project.org napsal dne 08.04.2011 09:31:44:
levels
random
the
samples
some
If you sample 400 items with replacement 400 times you will only 
accidentally get exact proportion of good and bad. Consider that in each 
sample your chance to get bad one is 40/360 but it does not mean that from 
400 random picks you will get exactly 40 bad items.

If you just want shuffle your rows use sampling without replacement.

mysample <- final[sample(1:nrow(final), 400),] 

In that case you get the same data but with random row order.

But if you want to do sample with replacement you will get on average the 
proportion of good and bad items. You can check it e.g. by

x<-c(rep("g", 360), rep("b",40))
res<-rep(NA, 1000)
for( i in 1:1000) {

y<-table(sample(x,400, replace=T))
res[i]<-y[1]/y[2]
hist(res)
abline(v=40/360, col=2)
}

Regards
Petr
http://www.R-project.org/posting-guide.html
#
Hi,

I am not perfectly sure what you want to do, but here is what I would do 
to maintain good/bad ratio in the sample (as Daniel posted, split the 
data and sample from the groups):

df <- data.frame(V1 = 1:400, V2 = c(rep("good",360), rep("bad",40)))
isGood <- which(df$V2=="good")
isBad <- which(df$V2=="bad")
sampleGood <- df[sample(isGood, replace=TRUE),]
sampleBad <- df[sample(isBad, replace=TRUE),]
summary(rbind(sampleGood, sampleBad))

Please include a more specific example with test data (for "final" in 
this case) next time.

Best regards,

Andreas


taby gathoni schrieb:

  
    
2 days later