【发布时间】:2020-12-25 17:48:24
【问题描述】:
如何有效地从 R 中的数据表中为列中的每个唯一变量采样一行?比如给定data.table:
library(data.table)
set.seed(1)
dt <- data.table(
A = sample(c("A", "B", "C", "D", "E"), 100, replace = T),
B = sample(1:100, 100, replace = T),
C = sample(101:200, 100, replace = T)
)
我需要为 A 列中的每个唯一字符采样一行。例如:
out <- list()
for (i in 1:length(unique(dt$A))){
out[[i]] <- dt[sample(dt[, .I[A == unique(dt$A)[i]]], 1, replace = T)]
}
out <- do.call("rbind", out)
但是,我应用它的数据表变化很大。有没有我可以用来提高性能的 data.table 方法?
【问题讨论】:
标签: r data.table sample