2012-12-23 66 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