我正在R中使用dplyr和sample_n,并试图在我的数据框中获取一组偶数行。
所以,我有一个数据集,数据头如下:
> head(SEH)
Time.Level Demo.Age SEH.Total
92 PRE 12 110
335 PRE 12 80
720 MID 14 85
196 MID 11 95
408 POST 18 60
184 POST 10 99
我根据时间级别将数据分为三个不同的数据帧。所以我有一个SEH.pre,一个SEH.mid和一个SEH.post。然后我做一个描述,我知道我的前,中,后组不平衡。因此,我想随机抽取前,中,后组的样本,使其大小均匀。例如,我的SEH.pre和SEH.mid组n的大小如下:
> describe(SEH.pre)
vars n
Time.Level* 1 887
Demo.Age 2 883
SEH.Total 3 887
> describe(SEH.mid)
vars n
Time.Level* 1 894
Demo.Age 2 872
SEH.Total 3 894
因此,现在我在SEH.pre上运行sample_n,以为我可以在所有列上重新采样为860。我运行以下命令:
SEH.pre2 <- sample_n(SEH.pre, 860, replace = FALSE)
然后我描述,Demo.Age小于其余部分:
> describe(SEH.pre2)
vars n ...
Time.Level* 1 860
Demo.Age 2 856
SEH.Total 3 860
我觉得自己是个白痴,但我不知道为什么会这样。我已经尝试了多次,并且Demo.Age从856到859不等,但是从来没有860。我希望所有三列都为860。我该怎么做?为什么我会误认为sample_n应该从不均匀中创建偶数组?