保存数量是一个for循环

保存数量是一个for循环,r,list,for-loop,error-handling,R,List,For Loop,Error Handling,我在将结果保存到for循环中时遇到问题。 我正在计算一个方差(我认为这不相关),我的代码是: library(dirmult) n <- 50 p <- 20 size <- 5*p prob_true <- rep(1/p, p) multinom <- as.matrix(rmultinom(n, size, prob = prob_true)) zeros <- round(0.5*p*n) a <- c(as.matrix(multinom))

我在将结果保存到for循环中时遇到问题。 我正在计算一个方差(我认为这不相关),我的代码是:

library(dirmult)
n <- 50
p <- 20
size <- 5*p
prob_true <- rep(1/p, p)
multinom <- as.matrix(rmultinom(n, size, prob = prob_true))
zeros <- round(0.5*p*n)
a <- c(as.matrix(multinom))
a[sample(1:(p*n), zeros)] <- 0
data_zeros <- matrix(a, p, n)
dirmult <- dirmult(t(data_zeros))
alpha <- dirmult$gamma
sum_alpha <- (1-dirmult$theta)/dirmult$theta

for (j in ncol(data_zeros)){
  A <- alpha/sum_alpha
  B <- 1 - A
  N <- colSums(data_zeros)
  C <- 1 + sum_alpha
  var_s_dirm <- list()
  var_s_dirm[[j]] <- N[j]*A*B*((N[j]+sum_alpha)/C)
}
库(dirmult)

n问题是(可能)每次增加j时,您都在设置常量,并且在每一步中,您都会用行
var\u s\u dirm清除列表如果我们无法重现问题,则很难找到/修复错误。。请添加示例数据..现在您应该能够复制它…如果代码中仍然缺少某些内容,请告诉我您的代码直到无法运行<代码>rmultinom中的错误(n,size,prob=prob\u true):未找到对象“size”
。阅读如何提供一个最小的可复制示例可能是一个好主意:是的,对不起,我忘记了那行代码,我的错!我有很多台词,我被搞糊涂了,它工作了!!谢谢!
library(dirmult)
n <- 50
p <- 20
size <- 5*p
prob_true <- rep(1/p, p)
multinom <- as.matrix(rmultinom(n, size, prob = prob_true))
zeros <- round(0.5*p*n)
a <- c(as.matrix(multinom))
a[sample(1:(p*n), zeros)] <- 0
data_zeros <- matrix(a, p, n)
dirmult <- dirmult(t(data_zeros))
alpha <- dirmult$gamma
sum_alpha <- (1-dirmult$theta)/dirmult$theta


A <- alpha/sum_alpha
B <- 1 - A
N <- colSums(data_zeros)
C <- 1 + sum_alpha
var_s_dirm <- list()

for (j in 1:ncol(data_zeros)){
  var_s_dirm[[j]] <- N[j]*A*B*((N[j]+sum_alpha)/C)
}
var_s_dirm
[[1]]
 [1] 2.614833 2.327105 2.500483 3.047700 2.233528 2.130223 2.700103 2.869699 2.930213 2.575903 2.198459 2.846096
[13] 2.425448 3.517559 3.136266 2.565345 2.578267 2.763113 2.709707 3.420792

[[2]]
 [1] 2.568959 2.286279 2.456615 2.994231 2.194343 2.092850 2.652732 2.819353 2.878806 2.530712 2.159889 2.796165
[13] 2.382897 3.455848 3.081244 2.520339 2.533034 2.714637 2.662168 3.360778

[[3]]
 [1] 3.211199 2.857849 3.070769 3.742790 2.742930 2.616064 3.315916 3.524193 3.598509 3.163391 2.699862 3.495207
[13] 2.978622 4.319811 3.851556 3.150424 3.166294 3.393297 3.327711 4.200974

....