[英]How to create a matrix with probability distribution in R
假設您想要一個2x3矩陣:
matrix(sample(c(-1,0,1), size=6, replace=TRUE, prob=c(1/6,2/3,1/6)), nrow=2)
因此,您可以使用prob
定義的prob
從所需的值中進行采樣。 這只是一個向量,但是您可以隨后使用matrix
將其變成所需形狀的matrix
。 用變量而不是值代替概率,以使其不靜態。
如果應該根據某種方案分配數字,而不是根據概率隨機繪制數字,請復制向量元素並對其進行隨機排序:
matrix(sample(rep(c(-1,0,1), times=c(1,4,1))), nrow=2)
您可以嘗試生成一個mxn矩陣:
sample.dynamic.matrix <- function(pop.symbols, probs, m, n) {
samples <- sample(pop.symbols, m*n, prob = probs, replace=TRUE)
return(matrix(samples, nrow=m))
}
set.seed(123)
sample.dynamic.matrix(-1:1, c(1/6,2/3,1/6), 2, 3)
# [,1] [,2] [,3]
#[1,] 0 0 -1
#[2,] 1 -1 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.