2016-03-07 4 views
-1

У меня есть следующий набор данных:Запуск факторный анализ с использованием разделения функции в R

MKT econ_unemp econ_gas open 
504 0.0743088 3.461 38 
504 0.0740673 3.448 38 
504 0.0740673 3.455 38 
504 0.0740673 3.42  38 
504 0.072682 3.391 38 
505 0.0692244 3.345 38 
505 0.0692244 3.381 38 
505 0.0692244 3.484 38 
505 0.0692244 3.488 38 

мне нужно запустить факторный анализ на 3 переменных рынка, так что я использовал функцию разделения в R разделить данные:

splitx<-split(data,data$DMA) 

, а затем попытался запустить факторный анализ следующим образом:

for (i in 1:length(splitx)) { 

fa <- factanal(splitx[[i]],factors =1) 
    } 

Но я получаю следующее ошибка:

Error in optim(start, FAfn, FAgr, method = "L-BFGS-B", lower = lower,:non-finite value supplied by optim 

Надеюсь, предоставленной информации достаточно. Может кто-то поможет мне исправить это.

С уважением

+0

Я думаю, что вы хотели 'factanal (splitx [[i]], factor = 1)' иначе вы не используете 'i' вообще в цикле, который был бы глупым. – MrFlick

+0

Да, но при этом я получаю следующую ошибку: Ошибка в оптимизации (start, FAfn, FAgr, method = "L-BFGS-B", lower = lower,: Не конечное значение, предоставляемое оптимизированным – user6016731

ответ

0
by(data[, -1], data[, 1], factanal, factors = 1) 

Это должно сделать трюк, предполагая, что MKT является раскол переменной.

+0

, так что я не буду нужен цикл for для этого? – user6016731

+0

@ user6016731 ​​- это по существу «скрывает» цикл, обертывая его в fucntion, но делает его намного легче интерпретировать. – thelatemail

+0

Я все еще получаю ту же ошибку – user6016731