【发布时间】:2018-01-17 07:59:12
【问题描述】:
我对 dplyr 包中的 sample_n 命令(对于 replace=TRUE 情况)的逻辑感到困惑。我正在使用 sample_n 但我无法弄清楚我的样本是如何复制的,它背后的逻辑是什么?
当我查看采样数据时,变量之间的分数或特定比率不是保守的。
【问题讨论】:
-
logic是什么意思?要生成可复制的随机过程,您通常使用set.seed()。
我对 dplyr 包中的 sample_n 命令(对于 replace=TRUE 情况)的逻辑感到困惑。我正在使用 sample_n 但我无法弄清楚我的样本是如何复制的,它背后的逻辑是什么?
当我查看采样数据时,变量之间的分数或特定比率不是保守的。
【问题讨论】:
logic 是什么意思?要生成可复制的随机过程,您通常使用set.seed()。
dplyr::sample_n 调用sample.int,所以我们将对此进行调查。想象一下,您有一个装有 10 个乒乓球的麻袋,按顺序编号。
sample(..., replace=FALSE) 表示你把手伸进袋子里,拿出一个乒乓球,记下号码,然后放在一边。您可以放心,您刚刚选择的号码不会再次被拉出麻袋。使用这种方法,您最多可以随机选择 10 个球(最后一个拉出的球应该确定其即将到来的值)。
sample(..., replace=TRUE) 意味着你把手伸进袋子里,拿出一个乒乓球,记下号码,然后把球放回袋子里。您下一次伸入麻袋时可能会拉出同一个球,这是可行的。使用这种方法,您可以从袋子中拉出(许多)超过 10 个球,认识到当拉出 10 个或更少的球时您可能会重复,当您拉出超过 10 个时肯定会有重复。
【讨论】: