Запуск факторного анализа с использованием функции разделения в 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

Мне нужно провести факторный анализ трех переменных по рынку, поэтому я использовал функцию разделения в 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

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

С Уважением


person user6016731    schedule 07.03.2016    source источник
comment
Я думаю, вы хотели factanal(splitx[[i]],factors =1), иначе вы вообще не используете i в цикле, что было бы глупо.   -  person MrFlick    schedule 07.03.2016
comment
Да, но при этом я получаю следующую ошибку: Ошибка в optim(start, FAfn, FAgr, method = L-BFGS-B, нижний = нижний,: не конечное значение, предоставленное optim   -  person user6016731    schedule 07.03.2016


Ответы (1)


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

Это должно сработать, если предположить, что MKT является разделяемой переменной.

person Frank P.    schedule 07.03.2016
comment
так что мне не понадобится цикл for для этого? - person user6016731; 07.03.2016
comment
@user6016731 ​​user6016731 ​​- это, по сути, скрывает цикл, заключая его в функцию, но значительно упрощает его интерпретацию. - person thelatemail; 07.03.2016
comment
@user6016731 ​​user6016731 ​​Не могли бы вы взглянуть на stackoverflow.com/questions/5963269/, чтобы мы могли лучше помочь? - person Frank P.; 07.03.2016