如何随机抽样删除一些组和随机删除组内的一些个人?

Posted

技术标签:

【中文标题】如何随机抽样删除一些组和随机删除组内的一些个人?【英文标题】:How can I sample removing some groups randomly and some individuals within group randomly? 【发布时间】:2022-01-05 14:05:00 【问题描述】:

a[:,4] 代表组。

a= [1 2 3 1;5 6 7 1;1 2 3 1;1 2 4 1;1 2 3 2;1 2 3 2;1 2 4 2;1 2 4 2;1 3 4 3;1 3 4 3;1 3 4 3;1 2 3 3 ]
12×4 MatrixInt64:
 1  2  3  1
 5  6  7  1
 1  2  3  1
 1  2  4  1
 1  2  3  2
 1  2  3  2
 1  2  4  2
 1  2  4  2
 1  3  4  3
 1  3  4  3
 1  3  4  3
 1  2  3  3

到目前为止,我已经对数据进行了分组。

我想从每个组中随机选择两个人并随机选择这两个组。有人可以帮忙吗?

a_dat=DataFrame(a,:auto)
gb=groupby(a_dat,:4)
GroupedDataFrame with 3 groups based on key: x4
First Group (4 rows): x4 = 1
x1  x2  x3  x4
Int64   Int64   Int64   Int64
1   1   2   3   1
2   5   6   7   1
3   1   2   3   1
4   1   2   4   1
⋮
Last Group (4 rows): x4 = 3
x1  x2  x3  x4
Int64   Int64   Int64   Int64
1   1   3   4   3
2   1   3   4   3
3   1   3   4   3
4   1   2   3   3

【问题讨论】:

【参考方案1】:

你可以例如做:

gb2 = gb[sample(1:length(gb), 2, replace=false)] # sample 2 groups
combine(gb2, sdf -> sdf[sample(1:nrow(sdf), 2, replace=false), :]) # sample 2 observations per group

【讨论】:

以上是关于如何随机抽样删除一些组和随机删除组内的一些个人?的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB 删除列(修改数据)与随机抽样方法两则

MongoDB 删除列(修改数据)与随机抽样方法两则

MongoDB 删除列(修改数据)与随机抽样方法两则

在 R 中复制不替换的分层随机抽样

是否可以通过查询获得组中组内的随机值?

我如何随机抽样所有类别的数据?