我想在数据表的每一行使用runif生成一个随机数。不幸的是,我得到了每一行相同的数字。
require(data.table)
dx <- data.table( min=1:10, max=seq(10,100,10))
dx[, sum:=min+max]
dx[, runif:=runif(n=1,min,max)]
> dx
min max sum runif
1: 1 10 11 5.086488
2: 2 20 22 5.086488
3: 3 30 33 5.086488
4: 4 40 44 5.086488
5: 5 50 55 5.086488
6: 6 60 66 5.086488
7: 7 70 77 5.086488
8: 8 80 88 5.086488
9: 9 90 99 5.086488
10: 10 100 110 5.086488
为什么runif的行为是这样的,但加法却运行良好? 有人可以建议如何在每一行上使用min和max生成一个均匀分布的随机数吗?