这篇文章讨论了按组进行不同百分比抽样的例程。
但是如果您只想抽样,比如 50%,而不按组替换怎么办?如果你想按组替换抽样 50% 怎么办?
使用 dplyr,您可以
sample_frac
执行此操作。 data.table 呢?
您可以使用
sample
和 .N
来获得比例。您可以使用 replace = TRUE
进行替换采样(默认为 FALSE
):
DT = data.table(a = sample(1:2), b = sample(1:1000,20))
DT[, .SD[sample(.N, floor(.5 * .N))], by = a]
# a b
# 1: 2 552
# 2: 2 246
# 3: 2 979
# 4: 2 611
# 5: 2 469
# 6: 1 703
# 7: 1 909
# 8: 1 274
# 9: 1 279
# 10: 1 316