【发布时间】:2021-01-28 10:15:10
【问题描述】:
我编写了一个函数来一次运行多个 lavaan 模型(来自 5 个不同的数据集)。在输出中,我得到 5 个不同的输出。但是,我想从这些模型中的每一个中提取一个特定的估计值,因为我在元分析中使用它们(而且我还有更多模型)
这是我运行模型的代码:
df_list <- list ('Y1'=emo_dyn_1,'Y2'=emo_dyn_2,'Y3'=emo_dyn_3,'Y4'=emo_dyn_4,'Y5'=emo_dyn_5)
model <- 'DepB ~ isdNA + imeanNA + sex + age'
fun = function(emo_dyn){
fit=sem(model,
data=emo_dyn,
estimator = "MLR",
missing = "ml.x")
summ = summary(fit, standardized = TRUE)
list(fit = fit,summary = summ)
}
results <- lapply(df_list,fun)
names(results) <- names(df_list)
results
这就是我提取系数的方法。它有点使它成为一个数据框,然后我从中提取特定值。不确定这是否是最佳选择。它是关于特定路径的标准化估计。但它只是复制和粘贴,我相信这会更容易,但我不知道如何编写这个循环。
emo_dyn_1_est<-standardizedSolution(results$Y1$fit) # Standardised coefficients
emo_dyn_1_est_1<-emo_dyn_1_est[1, 4]
emo_dyn_1_est_1
emo_dyn_2_est<-standardizedSolution(results$Y2$fit) # Standardised coefficients
emo_dyn_2_est_2<-emo_dyn_2_est[1, 4]
emo_dyn_2_est_2
emo_dyn_3_est<-standardizedSolution(results$Y3$fit) # Standardised coefficients
emo_dyn_3_est_3<-emo_dyn_3_est[1, 4]
emo_dyn_3_est_3
emo_dyn_4_est<-standardizedSolution(results$Y4$fit) # Standardised coefficients
emo_dyn_4_est_4<-emo_dyn_4_est[1, 4]
emo_dyn_4_est_4
emo_dyn_5_est<-standardizedSolution(results$Y5$fit) # Standardised coefficients
emo_dyn_5_est_5<-emo_dyn_5_est[1, 4]
emo_dyn_5_est_5
【问题讨论】:
-
嗨,Dominique,欢迎 :) 我不太明白你在问什么。您似乎已经能够访问系数,缺少什么?
-
嗨,我确实访问了估算值,是的。但是有没有办法写一个循环什么的,因为现在我复制和粘贴所有的东西 5 次。
标签: r loops parameters extract r-lavaan