[英]How to create a data matrix for my loop in R?
我有一個 for 循環,它從 Beta 分布中為 j=1, 2, ..., 71 采樣一個 theta[j],然后從每個 theta[j] 中獲得 100 yrep[k]。 如何將這些數據填充到 71 x 100 的數據矩陣中?
theta<-NULL
yrep<-NULL
test<-NULL
k=1
for(i in 1:100){for(j in 1:71){
theta[j] <- rbeta(1,10+y[j], 20+n[j]-y[j])
yrep[k]<-rbinom(1, n[j], theta[j])
k=k+1}
}
datatest=data.frame(y)
數據在哪里
#Data
y <- c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,
2,1,5,2,5,3,2,7,7,3,3,2,9,10,4,4,4,4,4,4,4,10,4,4,4,5,11,12,
5,5,6,5,6,6,6,6,16,15,15,9,4)
n <-
c(20,20,20,20,20,20,20,19,19,19,19,18,18,17,20,20,20,20,19,19,18,18,25,24,
23,20,20,20,20,20,20,10,49,19,46,27,17,49,47,20,20,13,48,50,20,20,20,20,
20,20,20,48,19,19,19,22,46,49,20,20,23,19,22,20,20,20,52,46,47,24,14)
你可以用 one-loop 做到這一點:
theta<-NULL
mat <- matrix(nrow = 71, ncol = 100)
for(j in 1:71) {
theta[j] <- rbeta(1,10+y[j], 20+n[j]-y[j])
mat[j, ] <- rbinom(100, n[j], theta[j])
}
dim(mat)
#[1] 71 100
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.