簡體   English   中英

軟件包“ psych”的因子分析中未找到對象“ w”的錯誤

[英]Object 'w' not found error in factor analysis with package 'psych'

這些頁面上有很多關於因子分析的問題。 我已經瀏覽了它們,但是似乎沒有相似之處,因此希望有人可以提供幫助。

我正在對一些調查問題進行因子分析,我希望這些潛在問題會出現。 我正在運行主軸或minres並遇到相同的問題,如下所述。

我的數據集包含許多離散變量和相當數量的缺失變量,編碼為NA ,但是即使刪除了所有NA ,問題仍然存在:

minres.out <- factor.minres(r = res, nfactors = 5, residuals=F, rotate = "varimax", n.obs=NA, scores=F, SMC=T, missing=F, min.err=0.001, ,max.iter=50, symmetric=T,warnings=T,fm="minres")
  minres.out

minres.out2 <- fa(r = res, nfactors = 5, residuals=F, rotate = "oblimin", n.obs=NA, scores=F, SMC=T, missing=F, impute="median",min.err=0.001, ,max.iter=50, symmetric=T,warnings=T,fm="minres", alpha=0.1, p=0.05,oblique.scores=F, use="pairwise")
  minres.out2

第一個使用了不推薦使用的版本,並給了我一個警告,但是它可以工作。 第二個給我以下錯誤:

Error in factor.scores(x.matrix, f = Structure, method = scores) : 
  object 'w' not found

我的數據中沒有對象w ,但是我真的不了解該對象的初衷。

運行traceback()給我:

3: factor.scores(x.matrix, f = Structure, method = scores)
2: fac(r = r, nfactors = nfactors, n.obs = n.obs, rotate = rotate, 
       scores = scores, residuals = residuals, SMC = SMC, covar = covar, 
       missing = FALSE, impute = impute, min.err = min.err, max.iter = max.iter, 
       symmetric = symmetric, warnings = warnings, fm = fm, alpha = alpha, 
       oblique.scores = oblique.scores, np.obs = np.obs, use = use, 
       ...)
1: fa(r = res, nfactors = 5, residuals = F, rotate = "oblimin", 
       n.obs = NA, scores = F, SMC = T, missing = F, impute = "median", 
       min.err = 0.001, , max.iter = 50, symmetric = T, warnings = T, 
       fm = "minres", alpha = 0.1, p = 0.05, oblique.scores = F, 
       use = "pairwise")

對我不是很有啟發。 對此有什么建議w

我逐行檢查了代碼。 似乎scores不能作為參數傳遞給factor.scores函數。 它通過switch語句,並且沒有分支激活,因此最終沒有w值,這導致它失敗。 您可以嘗試將以下愚蠢的修復程序復制並粘貼到R會話中,然后再次運行代碼:

fa <- function(r, nfactors = 1, n.obs = NA, n.iter = 1, rotate = "oblimin", 
    scores = "regression", residuals = FALSE, SMC = TRUE, covar = FALSE, 
    missing = FALSE, impute = "median", min.err = 0.001, max.iter = 50, 
    symmetric = TRUE, warnings = TRUE, fm = "minres", alpha = 0.1, 
    p = 0.05, oblique.scores = FALSE, np.obs = NULL, use = "pairwise", 
    ...){

scores <- c("a","b")
psych::fa(r, nfactors = 1, n.obs = NA, n.iter = 1, rotate = "oblimin", 
    scores = "regression", residuals = FALSE, SMC = TRUE, covar = FALSE, 
    missing = FALSE, impute = "median", min.err = 0.001, max.iter = 50, 
    symmetric = TRUE, warnings = TRUE, fm = "minres", alpha = 0.1, 
    p = 0.05, oblique.scores = FALSE, np.obs = NULL, use = "pairwise", 
    ...)
}

我有同樣的錯誤。 我的原因是我試圖將“回歸”傳遞給分數而不是“回歸”。 因此,請確保傳遞給分數的內容是可接受的參數選項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM