作者GTBUG (賈斯伯張)
看板R_Language
標題[問題] R菜鳥請問
時間Tue Oct 8 10:58:24 2013
- 問題:使用迴圈時如何正確借用設定好的i去output所需的資訊
[問題類型]:
程式諮詢
[軟體熟悉度]:
入門
[問題敘述]:
當我fit完幾個model後(如3個model:mod1,mod2,mod3),想利用accuracy(model)
去show出fitting資訊,我知道可以直接打accuracy(mod1)..依此類推,但現在
想要改寫程式碼利用loop讓他更簡潔,但是碰到無法在loop裡面指定每次要show的model,
突然想到這個問題,詢問板上大大們!
[程式範例]:
mod1 <- rwf(EuStockMarkets[1:200,1],h=100)
mod2 <- meanf(EuStockMarkets[1:200,1],h=100)
mod3 <- Arima(x,order=c(3,1,2))
#我想利用設定好的i讓loop依序針對mod1->3 (i:1->3)執行accuracy(),
我記得在其他程式語言可以做到,一時卡住在R這邊怎麼用
for( i in 1:3 ) {
accuracy(mod.i)
}
[關鍵字]:accuracy(), loop, R, model
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.65.71.253
※ 編輯: GTBUG 來自: 203.65.71.253 (10/08 10:59)
※ 編輯: GTBUG 來自: 203.65.71.253 (10/08 10:59)
→ obarisk:eval( parse( text=paste(mod,i,sep="") ) ) 10/08 13:06
→ obarisk:"mod"才對 10/08 13:07
→ obarisk:再改 10/08 13:08
→ obarisk:eval(parse(text=paste("accuracy(mod",i,")",sep=""))) 10/08 13:09
推 Wush978:上面是高級用法, 以這個例子來說用list可能比較適合 10/08 13:30
→ GTBUG:感謝,但無論用list或eval在loop裡,皆不會有output,而如果 10/08 14:25
→ GTBUG:把list或eval的結果指定給某變數ex.z<-eval(...)再print(z) 10/08 14:25
→ GTBUG:即會有想要的output,這是正確的嗎?還是有其他用法呢 10/08 14:26
推 Wush978:如果要把物件顯示在console上,需要用print或show 10/08 19:24
→ Wush978:試試看 show(accuracy(...)) 10/08 19:24
→ obarisk:要 print 那個物件 10/09 11:08
→ GTBUG:ok那跟我想的一樣,謝謝大家 10/09 14:20