如何使用data.table按组抽样百分比?

问题描述 投票:0回答:1

这篇文章讨论了按组进行不同百分比抽样的例程。

但是如果您只想抽样,比如 50%,而不按组替换怎么办?如果你想按组替换抽样 50% 怎么办?

使用 dplyr,您可以

sample_frac
执行此操作。 data.table 呢?

r data.table sampling
1个回答
2
投票

您可以使用

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
© www.soinside.com 2019 - 2024. All rights reserved.