![](/img/trans.png)
[英]R: how to create a matrix with results of the following form without using a loop
[英]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.