作者blackalert (右上角星位)
看板Statistics
标题Re: [程式] R package output处理问题 [tseries]
时间Wed Jan 30 09:26:20 2013
※ 引述《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)
1F:推 TrebleA:感谢,我先来尝试一下,如有最新结果再跟大家报告 01/30 15:04
2F:→ TrebleA:抱歉其实我不太懂中间的name(r)是指给我的M行向量名称吗? 01/30 15:27
3F:推 Wush978:你需要学R的资料结构和流程控制 01/30 15:31
4F:→ Wush978:(for TrebleA) 01/30 15:32
5F:→ TrebleA:SORRY po文後才看到这个推文 好的 谢谢 01/30 15:41