0

在功能层中,我声明要从每个层中提取的单元数,执行后我得到奇怪的结果。单位数量与我声明的不同。

这是示例:

library(sampling)
data(swissmunicipalities)
st=strata(swissmunicipalities,stratanames=c("REG"),size=c(30,20,45,15,20,11,44),method="srswor") 

结果:

> table(st$REG)
 1   2   3  4   5    6  7 
20 15 45 30 20 11 44 

应该:

30,20,45,15,20,11,44

我将非常感谢回答者。

4

1 回答 1

1

如果您阅读了 strata 函数的帮助页面,您将拥有:

size: vector of stratum sample sizes (in the order in which the
      strata are given in the input data set).

让我们检查一下数字在 REG 变量中的顺序

require(sampling)
data(swissmunicipalities)
swiss <- swissmunicipalities
unique(swiss$REG)
## [1] 4 1 3 2 5 6 7

如您所见,它们不是自然有序的,因此您有两种选择。

第一个选项,以与原始数据相同的顺序写入大小。

size <- c(15, 30, 45, 20, 20, 11, 44)
st <- strata(swiss, stratanames = "REG", size = size, method = "srswor")
table(st$REG)
##  1  2  3  4  5  6  7 
## 30 20 45 15 20 11 44

第二个选项,首先订购数据并保持你第一次写它的大小

swiss <- swiss[order(swiss$REG), ]
st <- strata(swiss, stratanames = "REG", size = c(30, 20, 45, 15, 20, 11, 44), 
method = "srswor")
table(st$REG)
##  1  2  3  4  5  6  7 
## 30 20 45 15 20 11 44
于 2013-05-09T16:59:57.030 回答