如何解决用R中给定概率的随机条目创建矩阵
我想创建一个100x100的矩阵A,其条目a_ij从集合{0,1}中随机选择,其中P(a_ij = 1)= 0.2和P(a_ij = 0)= 0.8。
这是我到目前为止尝试过的:
n<-100
matrix<-matrix(0,100,100)
mynumbers<-c(1,0)
myprobs<-c(0.2,0.8)
for(i in 1:100){
for (j in 1:100){
matrix[i,j]<-sample(mynumbers,1,replace=TRUE,prob=myprobs)
}
}
matrix
我不确定样本数量是否为1,但是这种方法似乎只有在我选择size = 1的情况下才有效...这是正确的方法吗?预先谢谢你!
解决方法
正如@akrun指出的那样,有很多简单的方法。 100 x 100的矩阵表示10,000个条目。 prob = .2
表示成功= 1 = P(a_ij = 1)= 0.2,在这种情况下,size
意味着一次尝试。 matrix
参数应该是不言而喻的。
set.seed(2020)
trials <- rbinom(n = 10000,size = 1,prob = .2)
my.matrix <- matrix(trials,nrow = 100,ncol = 100)
或更接近您的代码
n <- 10000
mynumbers<-c(1,0)
myprobs<-c(0.2,0.8)
trials2 <- sample(x = mynumbers,size = n,replace = TRUE,prob = myprobs)
my.matrix2 <- matrix(trials2,ncol = 100)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。