-1

申し訳ありませんが、私はこのプログラムの初心者です。タイトルが意味するように、Rが次のエラーを表示するため、いくつかの問題があります。階層5で十分な観察がありません。カンパニア州(イタリア)の5つの州で階層サンプリングを行う必要があります。そのようなデータがあります:

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

1 に答える 1

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 
于 2012-12-23T20:26:51.867 に答える