尝试自学R.使用需要我的朋友的问题:
我不太确定如何循环这个或最有效的方式来解决它。我需要增加.05的增量吗?
- 使用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?
}
答案 0 :(得分:0)
for
循环在R中是禁止的,但对于这个例子,它们非常快
创建逻辑矩阵(heads = TRUE
,tails = FALSE
)
mat <- matrix(TRUE, ncol = 20, nrow = 5000)
使用由列确定的硬币(prob
)的重量来模拟硬币投掷
for (i in 1:20)
mat[,i] <- sample(c(TRUE, FALSE), size = 5000, prob = c(i/20, 1 - i/20), replace = TRUE)
使用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
答案 1 :(得分:0)
你真的只是想让我们为你做这件事吗?不确定这是最好的学习练习,但是你去了
#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)