分层抽样规模因R组而异

时间:2017-10-09 22:02:18

标签: r sampling

我对R来说相当新。现在,当样本数量根据群体变化时,我会遇到分层抽样。

数据如下所示:

enter image description here

样本量根据不同的群体或阶层而变化:

enter image description here

我使用了分层抽样,但无法弄清楚样本量。

Result <- stratified(Population, c("Loc", "Format"), 
                 Population$SampleSize), replace = FALSE, 
                 keep.rownames = T)

显示“应将大小作为命名向量输入”的错误消息。有人可以帮忙吗?谢谢。

1 个答案:

答案 0 :(得分:1)

我假设您正在使用我的&#34; splitstackshape&#34;中的stratified封装

该错误解释了所需的内容:一个命名向量(例如c(a = 5, b = 10)之类的东西)。

但是,该函数的该特征假设只有一个变量用于分层。要解决这个问题,您可以通过粘贴您的&#34; Loc&#34;来创建一个新的分组变量。和&#34;格式&#34;列。

这是一个简单的例子....

从原始数据集的一些样本数据和指示所需样本量的数据集开始。

library(splitstackshape)
set.seed(1)
mydf <- data.table(strata1 = sample(letters[1:2], 25, TRUE), 
                   strata2 = sample(c("A", "B"), 25, TRUE), 
                   values = sample(25, replace = TRUE))
head(mydf)
#    strata1 strata2 values
# 1:       a       A     12
# 2:       a       A     22
# 3:       b       A     11
# 4:       b       B      7
# 5:       a       A      2
# 6:       b       A      3

wanted <- data.table(strata1 = c("a", "a", "b", "b"),
                     strata2 = c("A", "B", "A", "B"),
                     count = c(2, 3, 5, 2))
wanted
#    strata1 strata2 count
# 1:       a       A     2
# 2:       a       B     3
# 3:       b       A     5
# 4:       b       B     2

要获得输出,我们将添加名为&#34; KEY&#34;的列。结合两个分层柱。您可以对两个数据集执行此操作,但我只需使用&#34;想要&#34;数据集。

out <- stratified(
  mydf[, KEY := paste(strata1, strata2, sep = "_")], "KEY",
  with(wanted, setNames(count, paste(strata1, strata2, sep = "_"))))
out
#     strata1 strata2 values KEY
#  1:       a       A     21 a_A
#  2:       a       A      2 a_A
#  3:       a       B      9 a_B
#  4:       a       B      3 a_B
#  5:       a       B      9 a_B
#  6:       b       A     17 b_A
#  7:       b       A     12 b_A
#  8:       b       A      3 b_A
#  9:       b       A     17 b_A
# 10:       b       A     13 b_A
# 11:       b       B      8 b_B
# 12:       b       B     20 b_B

将原始样本大小与原始分层变量进行比较:

out[, .N, .(strata1, strata2)]
#    strata1 strata2 N
# 1:       a       A 2
# 2:       a       B 3
# 3:       b       A 5
# 4:       b       B 2