R 创建概率取决于索引列的矩阵
如何创建一个矩阵10x10,只有1的头和0的尾,头的概率为1除以列的索引 我尝试了几件事,但都不管用,真让人沮丧。我试着用一个向量和一个for循环R 创建概率取决于索引列的矩阵,r,matrix,indexing,R,Matrix,Indexing,如何创建一个矩阵10x10,只有1的头和0的尾,头的概率为1除以列的索引 我尝试了几件事,但都不管用,真让人沮丧。我试着用一个向量和一个for循环 mat <- matrix(sample(c(0,1), 100, replace=TRUE, prob=c(1/h, 1-(1/h)), 10)) 但是现在唯一的问题是如何定义h。这里有一个使用sapply的选项 希望能有帮助。对不起,我想你误解了我的意思。我需要一个只有0和1的矩阵。1的概率等于1/indexcolumn,所以在第一列
mat <- matrix(sample(c(0,1), 100, replace=TRUE, prob=c(1/h, 1-(1/h)), 10))
但是现在唯一的问题是如何定义h。这里有一个使用sapply的选项
希望能有帮助。对不起,我想你误解了我的意思。我需要一个只有0和1的矩阵。1的概率等于1/indexcolumn,所以在第一列中只有1。谢谢你指出这一点。将删除我的答案,如果我有解决方案,请返回。“你好。”麦克斯,我看到你的另一个问题了。更新了答案,这样您可以通过将n_行更改为您想要的任何数字来生成n个硬币翻转。非常感谢你的帮助。但是现在我想用相同的函数制作一个100x10矩阵,这有点令人沮丧,因为它只给出NA值。请参阅我之前的评论。
n_col <- 10
n_row <- 10
mat <- matrix(nrow = n_row,
ncol = n_col)
set.seed(1)
sapply(1:n_col, function(x) {
mat[, x] <- sample(x = c(1, 0),
size = n_row,
replace = TRUE,
prob = c(1/x, 1 - 1/x))
})
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
# [1,] 1 0 1 0 1 0 1 0 0 0
# [2,] 1 0 0 0 0 1 0 0 0 0
# [3,] 1 1 0 0 0 0 0 0 0 0
# [4,] 1 0 0 0 0 0 0 0 0 0
# [5,] 1 1 0 1 0 0 0 0 0 0
# [6,] 1 0 0 0 0 0 0 1 0 0
# [7,] 1 1 0 1 0 0 0 0 0 0
# [8,] 1 1 0 0 0 0 0 0 0 0
# [9,] 1 0 1 0 0 0 0 0 0 0
#[10,] 1 1 0 0 0 0 1 1 0 0