【发布时间】:2019-06-25 19:14:39
【问题描述】:
我有一些 data.table,我想从中选择一个随机子集,但仅适用于某些操作。
假设数据是
dat <- data.table(id=1:100, group=sample(1:20,100, replace=TRUE), a=runif(100), b=rnorm(100))
我想做两件事:
- 统计每组的 id 数量
- 从每个组中随机选择一个id,并将其值记录在
a和b上
我可以关注How do you extract a few random rows from a data.table on the fly并选择
dat[n=.N, a=a[sample(.N,1)], b=b[sample(.N,1)], group]
但我担心,这会相互独立地选择a 和b。有没有办法选择相同的?
【问题讨论】:
-
在 j 中使用 {} 来做多个表达式——首先,从 .I 中通过 sample()ing 选择一个索引,然后将此随机索引应用于两个向量
标签: r data.table subset