7

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

例如,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
4

1 回答 1

8

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

由于您想抑制单个表达式的输出,您可以使用capture.output, with 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]
))

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

于 2015-02-23T06:16:49.597 回答