0

私は 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
    

助けてくれてありがとう!

4

0 に答える 0