我有一个3d array
,每个维度包含7个元素(总体7*7*7= 343
元素)。每个元素包含一个在0
和1
之间的数字,该数字是该单元格的权重:
pop = sample(1 : 100, 7 ** 3, replace = TRUE)
prob = array(pop / sum(pop), c(7,7,7))
现在,我需要根据每个元素的权重随机选择此数组的一个单元格。
但是,我不知道如何随机选择一个单元格。
我希望正确的响应在
1
到7
之间返回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/