Re: [程式] R package output處理問題 [tseries]
※ 引述《TrebleA (我也想要有年終)》之銘言:
: [軟體程式類別]:
: R
: [程式問題]:
: TimeSeries, captre.output, 整理
: [軟體熟悉度]:
: 低(不到1個月)
: [問題敘述]:
: [程式範例]:
: -----------------------------------------------------------------------------
: 掙扎了很久還是想要麻煩大家一下,因為想到天亮了還是想
: 不出有沒有燒時間以外的方法....
: 以下說明我的問題:
: INDEX 是一個384*34的矩陣
: 我希望對每一行做DF單根檢定(所以要做34次)
: 其中需要的package如下
: library(tseries)
: 在苦苦追求解答的路上,終於讓我知道迴圈怎麼寫了(好笨><)
: adf.test(INDEX[,i],k=0) #DF TEST
: ##DF TEST
: for(i in 1:34){
: cat("i=",i)
: print(adf.test(INDEX[,i],k=0))
: }
: 很開心的把結果跑出來後遇到了一個難題
: 以第一行為例的話 用這個套件跑出來的結果是
: > adf.test(INDEX[,1]) #ADF TEST
: Augmented Dickey-Fuller Test
: data: INDEX[, 1]
: Dickey-Fuller = -2.0861, Lag order = 7, p-value = 0.5408
: alternative hypothesis: stationary
: 也就是如果把迴圈執行完是用上面的結果堆疊34次
: 但是我希望把他整理成以下的表
: i=1 DF statistic p-value lag order
: i=2 DF statistic p-value lag order
: .
: .
: .
: i=34 DF statistic p-value lag order
: 想說用capture.output來做雖然可以抓取所有的結果,但是資
: 料內容也由便於分析的數值變成character了,這樣在之後的分析上似乎會很不便?
: (因為之後想要找出比較不顯著的值)
: 爬了一下文發現大家都是自己寫的函數形式來做處理,
: 還沒有看到如果針對別人寫的package的結果做處理的。
: 不知道針對package的問題有沒有人有類似的問題跟想法呢?
: 謝謝大家耐心看完這篇
先定義一個34*4矩陣來放你要的結果,例如 M = matrix(,34,4)
然後在你的迴圈裡面,假設令 r = adf.test(INDEX[,i],k=0)
s = r$statistic 可以抓出D-F統計量
l = r$parameter 可以抓出 lag order
p = r$p.value 可以抓出 p-value
## 可以試試 names(r) ##
最後把它們放到預先定義的M矩陣中的相對位置 M[i,] = c(i,s,l,p) 就好了~
我其實不太懂時間數列,
如果有什麼錯誤還請指教~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.128.68.208
※ 編輯: blackalert 來自: 140.128.68.208 (01/30 09:40)
推
01/30 15:04, , 1F
01/30 15:04, 1F
→
01/30 15:27, , 2F
01/30 15:27, 2F
推
01/30 15:31, , 3F
01/30 15:31, 3F
→
01/30 15:32, , 4F
01/30 15:32, 4F
→
01/30 15:41, , 5F
01/30 15:41, 5F
討論串 (同標題文章)