小编jsi*_*rgo的帖子

给定随机数生成额外行的高效 data.table 方法

我有一个大的data.table,我想生成一个随机数(使用两列)并执行计算。然后我想执行这一步 1000 次。我正在寻找一种无需循环即可有效执行此操作的方法。

示例数据:

> dt <- data.table(Group=c(rep("A",3),rep("B",3)), 
                   Year=rep(2020:2022,2), 
                   N=c(300,350,400,123,175,156),
                   Count=c(25,30,35,3,6,8), 
                   Pop=c(1234,1543,1754,2500,2600,2400))
> dt
   Group Year   N Count  Pop
1:     A 2020 300    25 1234
2:     A 2021 350    30 1543
3:     A 2022 400    35 1754
4:     B 2020 123     3 2500
5:     B 2021 175     6 2600
6:     B 2022 156     8 2400
> dt[, rate := rpois(.N, lambda=Count)/Pop*100000]
> dt[, value := N*(rate/100000)]
> dt
   Group Year   N Count  Pop      rate     value
1:     A 2020 …
Run Code Online (Sandbox Code Playgroud)

random simulation r data.table

3
推荐指数
1
解决办法
54
查看次数

标签 统计

data.table ×1

r ×1

random ×1

simulation ×1