抑制打印到屏幕的平稳性测试的输出

时间:2015-02-23 00:15:02

标签: r output statistical-test

如何从R中的fractal package获取stationarity测试,以便不将任何输出打印到屏幕上。

例如,在将结果设置为变量时使用shapiro.wilk测试,它不会提供任何输出,如下所示

lg.day.ret.vec <- rnorm(100, mean = 5, sd = 3)

shap.p <- shapiro.test(lg.day.ret.vec)$p.value

大多数测试都是这种情况,但是当我为stationarity测试时,我在r控制台中获得了一些输出。

library(fractal)

stat.p <- attr(stationarity(lg.day.ret.vec),"pvals")[1]
1
2
3
4
5
6
N = 2609, nblock = 11, n_block_max = 238, dt =     1.0000
7
8
9
10
11
12
13
14
15
16
17
18

1 个答案:

答案 0 :(得分:7)

实际上,您可以通过重新路由来抑制输出到R控制台。 R utils sinkcapture.output中提供了两种方法。这两种方法都旨在将输出发送到文件。

由于您要抑制单个表达式的输出,因此可以使用capture.outputfile=NULL(默认值)。这将返回您的输出字符串。要防止在R控制台中显示此返回的字符串,您可以使用invisible

最终代码可以是:

library(fractal)

lg.day.ret.vec <- rnorm(100, mean = 5, sd = 3)
shap.p <- shapiro.test(lg.day.ret.vec)$p.value

invisible(capture.output(
    stat.p <- attr(stationarity(lg.day.ret.vec),"pvals")[1]
))

希望这会有所帮助。如果没有,请告诉我。