生成具有针对特定数字的特定数字重复项的矩阵

时间:2018-10-23 11:24:55

标签: r matrix sample

我想生成一个包含0.1和2的矩阵,并在不同的比例中使用该值,例如90%1、5%0和5%2。

我可以使用以下数字生成矩阵:

test <- matrix(0, 10, 10)
test[] <- apply(test, c(1,2), function(x) sample(c(0,1,2),1))

但是我不知道如何生成1 90%的时间,0和2 5%的时间的矩阵采样。

你知道我该怎么做到吗?

1 个答案:

答案 0 :(得分:3)

这应该给出您想要的:

v <- rep(c(0, 1, 2), round(10 * 10 * c(0.05, 0.9, 0.05)))
matrix(sample(v), nrow = 10, ncol = 10)
#       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
#  [1,]    1    1    1    1    1    1    1    1    1     1
#  [2,]    1    1    2    1    1    1    1    1    1     1
#  [3,]    2    1    1    0    1    1    1    1    2     1
#  [4,]    1    1    1    1    1    1    1    1    1     1
#  [5,]    1    0    1    1    1    2    1    1    1     1
#  [6,]    1    1    1    1    1    1    1    1    1     1
#  [7,]    1    1    1    0    1    1    1    1    1     1
#  [8,]    1    1    1    1    1    1    1    0    1     1
#  [9,]    1    1    0    1    1    1    1    1    1     2
# [10,]    1    1    1    1    1    1    1    1    1     1