dplyr sample_n返回表中不同的行数

时间:2018-11-29 23:45:54

标签: r dplyr statistics

我正在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应该从不均匀中创建偶数组?

0 个答案:

没有答案