RStudio探索性因素分析:编写一个函数,提取越来越多的因素
我一直在尝试在Rstudio中编写一个函数,用于提取越来越多的全民教育潜在因素,并在最终表格中报告每个解决方案的拟合度量。下面,我粘贴了我能想到的东西 不幸的是,它有一些关键的限制:RStudio探索性因素分析:编写一个函数,提取越来越多的因素,r,function,for-loop,purrr,factor-analysis,R,Function,For Loop,Purrr,Factor Analysis,我一直在尝试在Rstudio中编写一个函数,用于提取越来越多的全民教育潜在因素,并在最终表格中报告每个解决方案的拟合度量。下面,我粘贴了我能想到的东西 不幸的是,它有一些关键的限制: for循环需要设置要提取的因子的间隔。这很好,但如果函数在收到错误消息时停止(例如“超过最大迭代次数”、“在GPFoblq中未获得收敛”),则会更好 [已解决]最后一个表包含一个丑陋的第一列,标签为“RMSEA”,这是完全无用的,但我无法摆脱它 一般来说,for循环可能不是达到目标的最优雅的方式 library(
library(psych)
library(GPArotation)
library(dplyr)
library(plyr)
library(knitr)
efas <- list()
for (i in 1:10) {
fitn <- fa(bfi, nfactors = i, fm = "pa", rotate = "oblimin", scores = "regression")
efas[[i]] <- data.frame(fitn$TLI, fitn$RMSEA[1], fitn$rms, fitn$BIC) %>%
mutate(Factors = i) %>%
dplyr::rename(TLI = fitn.TLI,
RMSEA = fitn.RMSEA.1.,
SRMR = fitn.rms,
BIC = fitn.BIC) %>%
dplyr::select(Factors, TLI, RMSEA, SRMR, BIC)
}
d <- do.call("rbind", efas) %>%
kable()%>%
sub("^\\|[^|]+(\\|.*)", "\\1", .)
d
图书馆(心理学)
图书馆(GParotion)
图书馆(dplyr)
图书馆(plyr)
图书馆(knitr)
全民教育百分比
dplyr::选择(因子、TLI、RMSEA、SRMR、BIC)
}
d%
kable()%>%
sub(“\\\\\\\[^\\\\\\]+(\\\\\\\\\.*”,“\\1”,)
D
谢谢你的帮助 您是否可以让您的示例具有可复制性,也就是说,本质上,我们应该能够在一个新的R会话中复制粘贴您的代码,并运行它?谢谢:)(提示:
dput(db)
,fa
的定义或包,其他必要的library()
调用…)谢谢您的评论!我从R中随机选取了一个数据库,现在该函数可以运行了。期待阅读您的反馈!谢谢什么是big5
?big5是qgraph包中包含的数据集。这只是一个随机数据集,您可以在其上运行EFA。@Aurèle我不知道为什么big5数据集不起作用。由于bfi数据集包含代表5个因素的25个个性项目,我应该已经解决了这个问题。