我有一个3d array,每个维度包含7个元素(总体7*7*7= 343元素)。每个元素包含一个在01之间的数字,该数字是该单元格的权重:

pop = sample(1 : 100, 7 ** 3, replace = TRUE)
prob = array(pop / sum(pop), c(7,7,7))


现在,我需要根据每个元素的权重随机选择此数组的一个单元格。

但是,我不知道如何随机选择一个单元格。
我希望正确的响应在17之间返回3个不同的数字。

例如,如果它返回2,4,3,则表明它是协调为2,4,3的单元格

最佳答案

以下作品:

arrayInd(sample(1:343,1,prob = prob),c(7,7,7))


sample(1:343,1,prob = prob)在1:343之间选择一个具有必要概率的数字,然后arrayInd()将该数字转换为索引向量。

关于r - 如何在R中基于3d加权数组生成随机数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59284855/

10-09 17:08