df <- read.table(file.choose(), head=T)
df <- read.table("http://jupiter.hallym.ac.kr/ftpdata/data/Sampling/data/prop.pop2.txt", head=T)

NNs <- table(df$gst)
NN <- sum(NNs)
nns <- round(NNs/10000)
nn <- sum(nns)

# 동질층에 따른 부모집단
 rpp1 <- df[df$rst == 1,]$pp
 rpp2 <- df[df$rst == 2,]$pp
 rpp3 <- df[df$rst == 3,]$pp
 prs <- c(mean(rpp1), mean(rpp2), mean(rpp3))  # 층별 모비율율
# 동질층에 따른 부모집단
 gpp1 <- df[df$gst == 1,]$pp
 gpp2 <- df[df$gst == 2,]$pp
 gpp3 <- df[df$gst == 3,]$pp
 pgs <- c(mean(gpp1), mean(gpp2), mean(gpp3)) # 이질층에서의 층별 모비율

 pp <- sum( prs * NNs / NN ) # 모비율
# pp <- sum( pgs * NNs / NN ) # 도 같은 결과 


# 반복을 위한 초깃값 설정
 rpps <- NULL  # 동질층에서의 표본평균들
 gpps <- NULL  # 이질층에서의 표본평균들
 nrep <- 200     # 반복회수

 for (i in 1:nrep) { # nrep 만큼 반복
   srpp1 <- sample(rpp1, size=nns[1])
   srpp2 <- sample(rpp2, size=nns[2])
   srpp3 <- sample(rpp3, size=nns[3])
   srpp <- c(mean(srpp1),  mean(srpp2),  mean(srpp3)) # 층별표본평균
   rpp <- sum( srpp * NNs / NN )               # 동질층에 의한 표본평균
   rpps <- c(rpps, rpp)
############  이질층일 때의 표본추출과 평균
   sgpp1 <- sample(gpp1, size=nns[1])
   sgpp2 <- sample(gpp2, size=nns[2])
   sgpp3 <- sample(gpp3, size=nns[3])
   sgpp <- c(mean(sgpp1),  mean(sgpp2),  mean(sgpp3)) # 층별표본평균
   gpp <- sum( sgpp * NNs / NN )               # 동질층에 의한 표본평균
   gpps <- c(gpps, gpp)
} # end of for

mean(rpps); mean(gpps); mean(rpps)-pp; mean(gpps)-pp; sd(rpps); sd(gpps)


