我有一个这样的数据框(1000000 行):
A B C
a 0.2 4
b 0.8 7
c 1 8
d 0.2 1
e 0.6 9
我想将 B 中的每个值乘以从 C 中获取的随机数(无替换排列),为每一行生成一个新值 x。然后我想对所有 x 值求和以获得新行 y。重复这个n次。我的数据框中不需要 xn 列,只需要一个带有 yn 值的向量。
我会得到这样的东西(2 次迭代):
A B C x1 x2 .... xn
a 0.2 4 0.2*1=0.2 0.2*4=0.8
b 0.8 7 0.8*8=6.4 0.8*9=0.72
c 1 8 1*7=7 1*1=1
d 0.2 1 0.2*9=1.8 0.2*7=1.4
e 0.6 9 0.6*4=2.4 0.6*8=4.8
y 17.8 8.72 .... yn
replicate
在此处使用帮助:
n <- 10
(y <- with(df, replicate(sum(B * sample(C)), n = n)))
# [1] 16.4 16.4 18.0 17.8 14.2 14.2 18.0 20.4 15.2 19.8
如果替换抽样是一种选择,则可以通过生成单个大的值矩阵,C
然后使用来加快速度colSums
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句