如何从函数输出中删除不必要的内容

时间:2016-08-04 11:08:58

标签: r shiny

长话短说,我尝试做一个闪亮的应用程序,它执行以下操作: 如果我的时间序列是静止的,那么试试傅立叶 否则尝试小波

但是存在以下问题: 我使用来自ur.df包的urca以及每当我使用Augmented Dickey Fuller时 结果如下

###############################################################
# Augmented Dickey-Fuller Test Unit Root / Cointegration Test # 
############################################################### 

The value of the test statistic is: -0.9401 2.5819 3.3893

如何隔离测试统计信息-0.9401

提前谢谢

2 个答案:

答案 0 :(得分:2)

?ur.df

运行示例
 data(Raotbl3)
 attach(Raotbl3)
 lc.df <- ur.df(y=lc, lags=3, type='trend')

您获得的内容类似于打印返回对象的输出:

> lc.df

############################################################### 
# Augmented Dickey-Fuller Test Unit Root / Cointegration Test # 
############################################################### 

The value of the test statistic is: -2.2389 3.7382 2.5972 

打印这些对象的代码从@teststat插槽中获取测试统计信息:

> lc.df@teststat
               tau3     phi2     phi3
statistic -2.238865 3.738151 2.597211

ur.df类对象的类文档中清楚地记录了这一点:

 > class?ur.df

所示:

 ‘teststat’: Object of class ‘"matrix"’: Value of the test
      statistic.

所以要获得测试统计量第一行的第一个元素:

> lc.df@teststat[1,1]
[1] -2.238865

答案 1 :(得分:2)

ur.df函数返回一个S4类对象(ur.df),数据存储在插槽中(要查看这些使用slotNames)。

其中一个名称有用:

# Using the EuStockmarket data from the datasets package (standard in R)
df <- ur.df(EuStockMarkets[,"FTSE"])

slotNames(df)
# [1] "y"         "model"     "lags"      "cval"      "res"       "teststat"  "testreg"   "test.name"

#To access it use
df@teststat

# This is a primative matrix, so then get the value needed
df@teststat["statistic", "tau1"]