Re: [程式] R package output處理問題 [tseries]

看板Statistics作者 (右上角星位)時間13年前 (2013/01/30 09:26), 編輯推噓2(203)
留言5則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《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
抱歉其實我不太懂中間的name(r)是指給我的M行向量名稱嗎?
01/30 15:27, 2F

01/30 15:31, , 3F
你需要學R的資料結構和流程控制
01/30 15:31, 3F

01/30 15:32, , 4F
(for TrebleA)
01/30 15:32, 4F

01/30 15:41, , 5F
SORRY po文後才看到這個推文 好的 謝謝
01/30 15:41, 5F
文章代碼(AID): #1H27QzUT (Statistics)
討論串 (同標題文章)
文章代碼(AID): #1H27QzUT (Statistics)