作者TrebleA (我也想要有年终)
看板Statistics
标题Re: [程式] R package output处理问题 [tseries]
时间Wed Jan 30 15:40:03 2013
※ 引述《blackalert (右上角星位)》之铭言:
: ※ 引述《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))
: : }
: : 很开心的把结果跑出来後遇到了一个难题
: : 以第一行为例的话 用这个套件跑出来的结果是
: : 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) 就好了~
: 我其实不太懂时间数列,
: 如果有什麽错误还请指教~
感谢blackalert大的指导
尝试後成功得到我想要的矩阵形式的资料表示
程式码 及结果架构如下
M <-matrix(,34,4)
##DF TEST
for(i in 1:34){
cat("i=",i)
r <- adf.test(INDEX[,i],k=0)
s <- r$statistic
l <- r$parameter
p <- r$p.value
M[i,] <- c(i,s,p,l)
}
结果
M :
V1 V2 V3 V4
1 1 DF-statistic p-value lags
2 2 DF-statistic p-value lags
...
34 34 DF-statistic p-value lags
只是我现在有点好奇M矩阵中的c(V1,V2,V3,V4)要怎麽命名?
异想天开的乱使用这个code
> c("i","DF statistic","p-value","lag") <- names(c(M[,1],M[,2],M[,3],M[,4]))
出现了错误的讯息如下:
错误在c("i", "DF statistic", "p-value", "lag") <- names(c(M[, 1], M[, :
赋值目标扩充到非语言的物件
看来是无法使用在矩阵之後的数阵命名上面XD
谢谢,希望能不吝指教
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 36.224.85.12
1F:推 Jurina:colnames(M) <- c("i", "DF statistic", "p-value", "lag") 01/30 17:10
2F:→ Jurina:你原来这句的逻辑不对 你应该要把名字指派给矩阵 但你做 01/30 17:11
3F:→ Jurina:的事情刚好相反 01/30 17:11
4F:→ TrebleA:了解了,谢谢^_^ 01/30 22:28