2012-12-23 68 views
0

對不起,我是這個程序的新手。我有一些問題,因爲標題的意思是,因爲R給我以下錯誤不足以支持階層5.我必須在坎帕尼亞(意大利)的五個省進行地層抽樣,我有這樣的數據:R地層採樣

dati1$Rip <- matrix(dati1$A3.factor, nrow=N, ncol=1) 
dati1$A3.factor <- factor(dati1$A3, labels=c("Av","Bn","Ce","Na","Sa")) 
dati1$A3.factor 
[1] Sa Bn Sa Sa Sa Sa Sa Sa Sa Sa Sa Sa Av Sa Sa Bn Bn Bn Sa Bn Bn Bn Bn Bn Bn 
[26] Bn Sa Bn Sa Bn Sa Bn Bn Na Av Bn Bn Av Sa Bn Bn Bn Sa Bn Bn Sa Sa Bn Bn Bn 
[51] Av Bn Bn Bn Bn Sa Bn Sa Bn Bn Bn Sa Sa Na Sa Av Sa Bn Bn Bn Sa Sa Bn Sa Sa 
[76] Sa Sa Na Bn Bn Bn Av Av Bn Bn Bn Bn Bn Bn Bn Bn Na Bn Bn Sa Bn Ce Na Ce Sa 
Levels: Av Bn Ce Na Sa 

的問題是,當我這樣做

library(sampling) 
    N <- dim(dati1)[1] 
    N 
    a <- 0.05 
    z_a <- qnorm(1-a/2) 
    error <- 0.20 
    Vo <- error^2/z_a^2 
    Vo 
    n <- ((Vo/p*(1-p)) + (1/N))^(-1) 
    n <- round(n) 
    n 
    ripartizione <- factor(dati1$A3, labels=c("Av","Bn","Ce","Na","Sa")) 
    Nh <- table(ripartizione) 
    Nh 
    f <- (n/N)*Nh 
    f 
    nh <-round(f) 
    nh 

所以NH是

Av Bn Ce Na Sa 
    3 25 1 2 17 

從的N:

Av Bn Ce Na Sa 
    7 51 2 5 35 

爲什麼當我發出命令:

 sample.strata <- strata(dati1,c("Rip"), size=c(3,25,1,2,17), "srswor", TRUE) 
     sample.strata 

[R說

 error in strata(dati1, c("Rip"), size = c(3, 25, 1, 2, 17), "srswor", : 
      not enough obervations in the stratum 5 

我應該做些什麼?

回答

4

help(strata)頁面告訴你排序的data.frame。所以這個成功:

sample.strata <- strata(dati1[order(dati1$Rip),],c("Rip"), 
           size=c(3,25,1,2,17), "srswor", TRUE) 

使其成爲一個矩陣當然會變成一個因素納入其數字基礎,因此,如果你希望有有意義的標籤,您已經使用矩陣格式「在腳射門自己」。

> table(sample.strata$Stratum) 

1 2 3 4 5 
3 25 1 2 17