2013-05-09 18 views
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 

我将是anwsers非常感谢。

回答

1

如果你看过阶层功能的帮助页面,您可以:

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 
+0

谢谢,我忘了这一点。 :) – Maciej 2013-05-09 19:33:34