我正在尝试创建一个20x20矩阵,其中填充了-1:2的数字。但是,我不希望它是随机的,而是按我决定的比例。
例如,我希望0.10的单元格为-1,0.60的单元格为0,0.20的单元格为1,0.10的单元格为2。
这段代码能够为我提供一个包含我想要的所有值的矩阵,但是我不知道如何对其进行编辑以指定我想要的每个值的比例。
r <- 20
c <- 20
mat <- matrix(sample(-1:2,r*c, replace=TRUE),r,c)
答案 0 :(得分:1)
我们可以使用prob
中的sample
参数
matrix(sample(-1:2,r*c, replace=TRUE, prob = c(0.1, 0.6, 0.2, 0.2)), r, c)
答案 1 :(得分:1)
r <- 20
c <- 20
ncell = r * c
val = c(-1, 0.2, 1, 2)
p = c(0.1, 0.6, 0.2, 0.1)
fill = rep(val, ceiling(p * ncell))[1:ncell]
mat <- matrix(data = sample(fill), nrow = r, ncol = c)
prop.table(table(mat))
#> mat
#> -1 0.2 1 2
#> 0.1 0.6 0.2 0.1
由reprex package(v0.3.0)于2019-09-20创建