是否有可能获得单元格引用而不是从:sample(matrix)获得的值?

时间:2014-10-13 06:26:00

标签: r random-sample

我正在使用以下代码从矩阵中选择一个随机值。 probMatrix包含每个单元格的概率权重。 sample( )从exampleMatrix返回一个随机单元格值。

probMatrix <- matrix(0.2,nrow=2,ncol=2)
exampleMatrix <- matrix(1:4,nrow=2,ncol=2)

sample(exampleMatrix, 1, prob=probMatrix)

我希望能够得到拉出随机值的矩阵单元的参考/坐标。有没有办法实现这个目标?

我需要矩阵单元坐标来更新我正在尝试模拟的系统状态(probMatrix和exampleMatrix)。

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果您需要索引,则样本形成可能的索引并使用该索引提取值。您可以使用arrayInd获取行/列。例如

set.seed(22)
(si <- sample(1:length(exampleMatrix), 1, prob=probMatrix))
# [1] 3
(sv <- exampleMatrix[si])
# [1] 3
(scoor <- arrayInd(si, dim(exampleMatrix)))
#      [,1] [,2]
# [1,]    1    2