varias studio programacion lineas leyendas graficos grafico graficas ejemplos dispersion r

studio - plot en r



Suprimir la salida de un comando en R (6)

La siguiente función debe hacer exactamente lo que quiere:

hush=function(code){ sink("NUL") # use /dev/null in UNIX tmp = code sink() return(tmp) }

Por ejemplo con la función aquí:

foo=function(){ print("BAR!") return(42) }

corriendo

x = hush(foo())

Asignará 42 a x pero no imprimirá "BAR!" para repartir

Tenga en cuenta que en un sistema operativo UNIX deberá reemplazar "NUL" por "/ dev / null"

Estoy buscando suprimir la salida de un comando (en este caso, la función de apply ).

¿Es posible hacer esto sin usar sink() ? He encontrado la solución descrita a continuación, pero me gustaría hacer esto en una línea si es posible.

Cómo suprimir la salida


No está claro por qué desea hacer esto sin el sink , pero puede ajustar cualquier comando en la función invisible() y suprimirá la salida. Por ejemplo:

1:10 # prints output invisible(1:10) # hides it

De lo contrario, siempre puedes combinar las cosas en una línea con un punto y coma y paréntesis:

{ sink("/dev/null"); ....; sink(); }


Puedes usar ''capture.output'' como abajo. Esto le permite utilizar los datos más tarde:

log <- capture.output({ test <- CensReg.SMN(cc=cc,x=x,y=y, nu=NULL, type="Normal") }) test$betas


R solo imprime automáticamente la salida de las expresiones no asignadas, así que simplemente asigne el resultado de la apply a una variable y no se imprimirá.


Utilice la función capture.output() . Funciona de manera muy parecida a un sink() único sink() y, a diferencia de invisible() , puede suprimir más que solo imprimir mensajes. Establezca el argumento del archivo en /dev/null en UNIX o NUL en Windows. Por ejemplo, considerando la nota de Dirk:

> invisible(cat("Hi/n")) Hi > capture.output( cat("Hi/n"), file=''NUL'') >


invisible(cat("Dataset: ", dataset, fill = TRUE)) invisible(cat(" Width: " ,width, fill = TRUE)) invisible(cat(" Bin1: " ,bin1interval, fill = TRUE)) invisible(cat(" Bin2: " ,bin2interval, fill = TRUE)) invisible(cat(" Bin3: " ,bin3interval, fill = TRUE))

produce una salida sin NULL al final de la línea o en la siguiente línea

Dataset: 17 19 26 29 31 32 34 45 47 51 52 59 60 62 63 Width: 15.33333 Bin1: 17 32.33333 Bin2: 32.33333 47.66667 Bin3: 47.66667 63