这个问题是我之前关于递归随机采样高效递归随机采样问题的后续问题。当组大小相同或每组需要固定数量的样本时,该线程中的解决方案可以正常工作。然而,让我们想象一个数据集如下:
ID1 ID2
1 A 1
2 A 6
3 B 1
4 B 2
5 B 3
6 C 4
7 C 5
8 C 6
9 D 6
10 D 7
11 D 8
12 D 9
Run Code Online (Sandbox Code Playgroud)
我们想要为每个 ID1 随机采样最多 n 个ID2,并递归地执行此操作。这里的递归意味着我们从第一个 ID1 移动到最后一个 ID1,如果 ID2 已经被采样为 ID1,那么它不应该用于后续的 ID1。假设n = 2,那么预期结果如下;
ID1 ID2
1 A 1
2 A 6
4 B 2
5 B 3
6 C 4
7 C …Run Code Online (Sandbox Code Playgroud)