繁体   English   中英

如何在 R 中使用 qgcomp() 创建带有 for 循环的矩阵

[英]How to create a matrix with for loop using qgcomp() in R

我总是使用 for 循环来创建线性和逻辑回归 output 的矩阵,但是使用 qgcomp() 这样做有困难。 如果有人有经验或建议,我将不胜感激。 我更喜欢这种方法而不是函数,因为只需单击一下。 输出的矩阵仅包含“NA”,即使我删除了 try catch 错误,它也会指出错误:$ 运算符对原子向量无效。 我已经用 model 语句中的引号尝试了每一个可能的迭代......

这是一个例子:

mixture <- c("apples", "bananas", "kiwis")
outcomes <- c("monday", "tuesday", "wednesday")

outcome_matrix <- matrix(nrow = 3, ncol = 5)
colnames(outcome_matrix ) <- c("Psi_beta", "Psi.LCL", "Psi.UCL", "Pos.psi.weights", "Neg.psi.weights")
rownames(outcome_matrix) <- c("monday","tuesday","wednesday")

for(i in 1:3){
  tryCatch(
    {
      mod1 <- qgcomp.boot(paste0("mix.df$",outcomes[i],"~mix.df$mat_age", "+factor(mix.df$study)", "+factor(mix.df$parity)", "+factor(mix.df$mat_educ_comb)", "+mix.df$ppbmi", "+mix.df$apples","+mix.df$bananas", "+mix.df$kiwis"), dat=mix.df, expnms=mixture, q=4,family=gaussian())         
    
      matrix[i,1] <- round(mod1$psi,2) # extract overall mixture estimate
      matrix[i,2] <- round(mod1$ci.coef,2)[2] #extract LCL for mixture
      matrix[i,3] <- round(mod1$ci.coef,2)[4] #extract LCL for mixture
      matrix[i,4] <- round(mod1$pos.psi,2) #extract sum of positive weights for mixture
      matrix[i,5] <- round(mod1$neg.psi,2) #extract sum of negative weights for mixture
      
    }, error=function(e){})
}

当我看不到 mix.df 的样子时,很难说出发生了什么。 鉴于您面临的错误,您可能正在尝试使用$表示法访问向量。 据我所知, qgcomp.boot 返回一个列表,因此这不太可能是您的错误的根源。 因此,我认为这可能与 mix.df 有关。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM