фактанал в Базе R и обработка NA - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть data.frame, называемый D, показанный ЗДЕСЬ .Я хочу использовать функцию factanal в базе R в первых 8 столбцах D.

Однако мне интересно, почему я получаю следующую ошибку: 'x' must contain finite values only whileЯ установил NA s для удаления?

D <- read.csv("https://raw.githubusercontent.com/rnorouzian/i/master/SLI.csv", h = T)

pre <- D[1:8] # separate first 8 columns

factanal(pre, factors = 1, scores = "reg", na.action = na.omit) 

# Error in cov.wt(z) : 'x' must contain finite values only

1 Ответ

1 голос
/ 25 сентября 2019

В документации говорится, что аргумент na.action применяется, только если формула передана как x.Если вы хотите передать data.frame с пропущенными значениями, вам нужно установить его на подмножество.

pre <- D[complete.cases(D[1:8]),1:8] 

factanal(pre, factors = 1, scores = "reg" ) 

Call:
factanal(x = pre, factors = 1, scores = "reg")

Uniquenesses:
 Q1_a  Q2_a  Q3_a  Q4_a  Q5_a  Q6_a  Q7_a  Q8_a 
0.645 0.547 0.801 0.556 0.254 0.280 0.996 0.915 

Loadings:
     Factor1
Q1_a 0.596  
Q2_a 0.673  
Q3_a 0.446  
Q4_a 0.666  
Q5_a 0.863  
Q6_a 0.848  
Q7_a        
Q8_a 0.292  

               Factor1
SS loadings      3.006
Proportion Var   0.376

Test of the hypothesis that 1 factor is sufficient.
The chi square statistic is 17.83 on 20 degrees of freedom.
The p-value is 0.599 

Или тот же результат:

factanal(as.formula(paste0("~", paste0(names(D[1:8]), collapse = " + "))), data = D, na.action = "na.omit", factors = 1, scores = "reg" )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...