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

Vik*_*Vik 5 r output statistical-test

如何stationarityfractal packageR中进行测试,不将任何输出打印到屏幕上.

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

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

shap.p <- shapiro.test(lg.day.ret.vec)$p.value
Run Code Online (Sandbox Code Playgroud)

这是大多数测试的情况,但是当我为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
Run Code Online (Sandbox Code Playgroud)

ahm*_*med 7

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

由于您要抑制单个表达式的输出,因此可以使用capture.outputwith file=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]
))
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.如果没有,请告诉我.