RStudio探索性因素分析:编写一个提取越来越多因素的函数

时间:2018-07-20 00:18:42

标签: r function for-loop purrr factor-analysis

我一直试图在Rstudio中编写一个函数,该函数为EFA提取越来越多的潜在因子,并在最终表中报告每种解决方案的拟合度。在下面,我粘贴了我能想到的。

不幸的是,它有一些关键限制:

  1. for循环需要设置要提取的因子的间隔。很好,但是如果函数在出现错误消息时停止运行(如“超出最大迭代次数”,“在GPFoblq中未获得收敛”),那就更好了。

  2. [已解决]最终表中包含一个丑陋的第一列,其标签为“ RMSEA”,这是完全没有用的,但我无法摆脱它。

  3. 通常,for循环可能不是达到目标的最优雅方法。

     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
    

感谢您的帮助!

0 个答案:

没有答案