2014-05-14 85 views
0

運行此代碼時出現警告。警告meassage:要替換的項目數不是替換長度的倍數

例如,當我把 tm1<- summary(tmfit)[c(4,8,9)], 我可以得到結果,但我需要爲每個$ i $運行此代碼。

爲什麼我得到這個錯誤?

有什麼辦法可以做到這一點,而不是通過for循環?

具體來說,我有相同的兩個迴歸者($ x $'s)有很多回報者($ y $)。

我如何得到這些迴歸分析的結果(做一些比較)?

dreg=read.csv("dayreg.csv") 
fundr=read.csv("fundreturnday.csv") 
num=ncol(fundr) 
exr=dreg[,2] 
tm=dreg[,4] 
for(i in 2:num) 
{ 
    tmfit=lm(fundr[,i]~exr+tm) 
    tm1[i]<- summary(tmfit)[c(4,8,9)] 
} 

任何幫助,高度讚賞

回答

0

嘗試保存你的結果到一個列表,而不是載體。

dreg=read.csv("dayreg.csv") 
fundr=read.csv("fundreturnday.csv") 
num=ncol(fundr) 
exr=dreg[,2] 
tm = list() 
for(i in 2:num) 
{ 
    tmfit=lm(fundr[,i]~exr+tm) 
    tm1[[i]]<- summary(tmfit)[c(4,8,9)] 
} 

你可以看一下列表中的一個元素,像這樣

tm1[[2]] 
+0

@ jsk.Thank您answer.Another qestion:你們所知道的摘要(tmfit)是一個長度爲11的遞歸列表。我想將tm1(包括三項:係數,r-aquared,adj.r-squared)保存到一個csv文件中,但是我得到的是亂碼文件。爲什麼?code:write.csv(tm1,「tm_reg.csv」) –

+0

嗨,傑西,請在網站上發佈這個作爲一個單獨的問題。謝謝 –

相關問題