R:使用数据表的列值生成随机数



我有一个非常大的数据集,并希望生成一个具有随机整数的列,其范围的最大值取自另一列。在以R为基数的情况下,它是:

dt$random <- sample(1:dt$value, size=nrow(dt), rep = TRUE)

我怎么能做到这一点使用数据表,因为我想这运行得更快?谢谢!

如果我理解正确的话,data.table和base R之间的性能差异将非常小。在以R为基数的情况下,我会这样做:

dt$random = ceiling(runif(n = nrow(dt), min = 0, max = df$value))

数据。表的等效值为

library(data.table)
setDT(dt)
dt[, random := ceiling(runif(n = .N, min = 0, max = df$value))]

在这两种情况下,绘制随机数比将它们添加到数据结构中要花费更多的时间,但是data.table一旦生成,将更有效地将随机数添加到数据结构中。因此,这个操作的一小部分将得到更优化。

最新更新