【发布时间】:2020-11-03 16:14:35
【问题描述】:
我有一个数据集,我想按组随机抽取最多 30 行的样本。但是,我还想确保至少包含 1 行用于另一个分组。此外,某些组的行数少于 30,在这种情况下,应包括该组的所有行。我无法包含我正在使用的确切数据集,因为它是专有的;但是,数据框 df 的示例是:
ID|年龄|州|性别|薪水
1 25 厘米 50000
2 34 厘米 72000
3 28 厘米 52000
4 25 CO F 44000
5 25 CA F 55000
6 34 CA F 100000
7 39 CA M 88000
8 34 CA M 59000
...最多 15000 行
所以,我想要一个数据集的随机样本,这样每个州给出的行数不超过 30 行。然后,对于每个州,我希望数据集中存在的每个年龄和性别至少有 1 行。如果给定州的年龄/性别组合少于 30 个,但该州的行数超过 30 行,则样本应包括给定年龄/性别的多行,以便为该州提供 30 行。如果该州的行数少于 30,那么我想要该州的数据集中的所有行。如果给定州的年龄/性别组合超过 30 个,则样本应各有 1 个,最多 30 个。
我有办法在 R 中做到这一点吗?
【问题讨论】:
-
欢迎来到 SO!发布问题时,您会发现提供易于重现的代码和您期望(或希望)结果的模拟版本最有帮助。例如,使用 dput(head(data,20)) 提供数据样本有助于我们更快地开始帮助您。