R-构造矩阵,模拟概率,包含在新矩阵中,并显示在直方图上

R-构造矩阵,模拟概率,包含在新矩阵中,并显示在直方图上,r,matrix,R,Matrix,试图自学R.使用朋友的问题,这要求我: 构建一个包含5000行和20列的矩阵 每一列代表从硬币1到20的投掷 每列必须代表50次抛硬币 从第1列中的硬币1到第20列中的硬币20得到人头的概率从0.05到1 我不太确定如何循环,也不确定最有效的方法。我需要增加0.05倍吗 找出每列的平均值和方差,然后 将结果保存在20*2的矩阵中 -使用2*4矩阵将前8列放入直方图 -每个主标题都是硬币 这是我到目前为止的代码。我认为我在某些方面走对了方向。感谢您的帮助。谢谢 test<-matri

试图自学R.使用朋友的问题,这要求我:

  • 构建一个包含5000行和20列的矩阵
  • 每一列代表从硬币1到20的投掷
  • 每列必须代表50次抛硬币
  • 从第1列中的硬币1到第20列中的硬币20得到人头的概率从0.05到1
我不太确定如何循环,也不确定最有效的方法。我需要增加0.05倍吗

  • 找出每列的平均值和方差,然后 将结果保存在20*2的矩阵中
-使用2*4矩阵将前8列放入直方图

-每个主标题都是硬币

这是我到目前为止的代码。我认为我在某些方面走对了方向。感谢您的帮助。谢谢

test<-matrix(nrow=5000,ncol=20)
for(i in 1:20){

test<-matrix(nrow=5000,ncol=20,data=
c(rbinom(n=5000, size=50, prob=.05),rbinom(n=5000, size=50, prob=.10)
} ??




testdescstats<-matrix(nrow=20,ncol=2)
for(i in 1:20){

testdescstats[i,1]<-mean(test[,i])
testdescstats[i,2]<-var(test[,i])
}


split.screen(c(2,4))
for(i in 1:8){
screen(i)
hist(test[,i],paste0 graph titles?
}

test
for
循环在R中是不可能的,但在这个例子中,它们非常快

创建逻辑矩阵(
heads=TRUE
tails=FALSE

使用
apply
获取列平均值和方差。你的价值观可能会有所不同

apply(mat, 2, mean)
 [1] 0.0506 0.0980 0.1520 0.2046 0.2496 0.2996 0.3460 0.3962 0.4504 0.5110 0.5528 0.6108 0.6560 0.7024 0.7528 0.8120 0.8496
[18] 0.8996 0.9498 1.0000

apply(mat, 2, var)
 [1] 0.04804925 0.08841368 0.12892178 0.16277139 0.18733731 0.20988182 0.22632927 0.23927341 0.24758936 0.24992899
[11] 0.24726161 0.23777091 0.22570914 0.20907606 0.18612939 0.15268654 0.12780540 0.09033791 0.04768950 0.00000000

你真的想让我们为你做这件事吗?不确定这是最好的学习练习,但现在开始

#create matrix
prob <- seq(.05, 1, length.out=20)
x <- sapply(prob, function(p) rbinom(5000, 50, p))

#summarize
r <- t(apply(x, 2, function(z) c(mean(z), var(z))))

#plot histograms
layout(matrix(1:8, nrow=2, byrow=T))
for(i in 1:8) hist(x[,i], main=i)
#创建矩阵

欢迎来到StackOverflow。这不是一个很好的第一个问题。每个问题都应该集中在一个编程任务上。明确你的困难所在。显示您尝试的代码,描述它是如何失败的,并清楚地说明所需的输出。不要只是把你想让别人帮你做的事情列在购物清单上。见。谢谢你的意见。这和我看到的有点不同。你有什么好的R教程在线资源吗?我会确保下次我的问题更加详细。很抱歉我感谢你的帮助。
apply(mat, 2, mean)
 [1] 0.0506 0.0980 0.1520 0.2046 0.2496 0.2996 0.3460 0.3962 0.4504 0.5110 0.5528 0.6108 0.6560 0.7024 0.7528 0.8120 0.8496
[18] 0.8996 0.9498 1.0000

apply(mat, 2, var)
 [1] 0.04804925 0.08841368 0.12892178 0.16277139 0.18733731 0.20988182 0.22632927 0.23927341 0.24758936 0.24992899
[11] 0.24726161 0.23777091 0.22570914 0.20907606 0.18612939 0.15268654 0.12780540 0.09033791 0.04768950 0.00000000
#create matrix
prob <- seq(.05, 1, length.out=20)
x <- sapply(prob, function(p) rbinom(5000, 50, p))

#summarize
r <- t(apply(x, 2, function(z) c(mean(z), var(z))))

#plot histograms
layout(matrix(1:8, nrow=2, byrow=T))
for(i in 1:8) hist(x[,i], main=i)