2016-03-07 129 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]],因子= 1)'否則你根本就沒有在循環中使用'i',這很愚蠢。 – MrFlick

+0

是的,但這樣做我得到以下錯誤:優化中的錯誤(開始,FAfn,FAgr,方法=「L-BFGS-B」,更低=更低,: 優化提供的非有限值 – user6016731

回答

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

這應該做的伎倆,假設MKT是分割變量。

+0

所以不會需要一個for循環? – user6016731

+0

@ user6016731 - 這實質上是通過將其隱藏起來而隱藏一個循環,但使它更容易解釋。 – thelatemail

+0

我仍然得到相同的錯誤 – user6016731