使用R中的矢量化函数填充数据表



我正在尝试使用矢量化操作填充r中的数据表:

library(data.table)
x = 5
y = 3
Foo = data.table(Bar = 1:x)
Foo[,paste0("simulation",1:y) := Bar * rnorm(y,,Bar)]

我认为,对于每一行,rnorm(y,bar)将形成y长度向量(使用该行的栏作为标准偏差),将其乘以该行的条值,然后填充适当的列。但是,(从其他实验中)似乎是试图首先尝试下列。有没有办法改变此行为?

我们可以通过'bar'的值循环并创建rnorm

Foo[, paste0("simulation",seq_len(y)) :=transpose(lapply(Bar, function(z) rnorm(y, sd = z)))]

最新更新