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

Suppress output of stationarity test that is printed to screen

我如何从 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

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

因为你想抑制单个表达式的输出,你可以使用 capture.outputfile=NULL(默认)。这会将 return 输出为字符串。为防止在 R 控制台中显示此 returned 字符串 ,您可以使用 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]
))

希望这对您有所帮助。如果没有请告诉我。