**因我是疯子而被编辑-有替换,而不是没有**
我有一个包含421个组的大型数据集(> 500k行),由两个分组变量定义。样本数据如下:
df<-data.frame(group_one=rep((0:9),26), group_two=rep((letters),10))
head(df)
group_one group_two
1 0 a
2 1 b
3 2 c
4 3 d
5 4 e
6 5 f
Run Code Online (Sandbox Code Playgroud)
...等等。
我想要的是按(group_one x group_two)中的成员身份划分的样本数量(目前k = 12,但该数量可能有所变化)。每个组中的成员资格应由新列sample_membership指示,其值是1到k(目前为12)。我应该能够通过sample_membership进行子集化,并获得多达12个不同的样本,当考虑group_one和group_two时,每个样本都具有代表性。
因此,最终数据集将如下所示:
group_one group_two sample_membership
1 0 a 1
2 0 a 12
3 0 a 5
4 1 a 5
5 1 a 7
6 1 a 9
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?首先十分感谢!
也许是这样的:
library(dplyr)
df %>%
group_by(group_one, group_two) %>%
mutate(sample_membership = sample(1:12, n(), replace = FALSE))
Run Code Online (Sandbox Code Playgroud)