2015-02-23 11 views
5

Come si ottiene il test stationarity da fractal package in R per non stampare alcuna uscita sullo schermo.Soppressione dell'output del test di stazionarietà che viene stampato sullo schermo

Ad esempio, con il test shapiro.wilk quando si imposta il risultato come una variabile non dà alcun output come segue

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

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

Questo è il caso per la maggior parte dei test, ma quando lo faccio per la stationarity prova I ottenere un po 'di output nella console 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

@ user20650 grazie, sì la modifica è corretta – Vik

risposta

6

In realtà, si può sopprimere l'output di console R da reinstradamento esso. Sono disponibili due metodi in R utils, sink e capture.output. Entrambi i metodi hanno lo scopo di inviare l'output a un file.

Poiché si desidera sopprimere l'output di una singola espressione, è possibile utilizzare capture.output, con file=NULL (predefinito). Ciò restituirà l'output come stringa. Per evitare di mostrare questo stringa restituita nella console R, è possibile utilizzare invisible.

Il codice finale può essere:

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] 
)) 

Spero che questo aiuti. Fammi sapere se no.