2009-07-23 15 views
57

Esto puede parecer poco personal, pero afecta mi productividad. Estoy usando R en modo terminal en Linux. A diferencia del Windows IDE, Linux limita el número de columnas a 80, lo que dificulta la inspección de los conjuntos de datos. ¿Hay alguna forma de establecer el número máximo de columnas?Cómo aumentar el número de columnas con R en Linux

+0

Así que ninguna de estas soluciones parecen funcionar para Statet? –

Respuesta

52

Aquí es una función que tengo en mi ~/.Rprofile archivo:

wideScreen <- function(howWide=Sys.getenv("COLUMNS")) { 
    options(width=as.integer(howWide)) 
} 

Llamar a la función sin el argumento howWide establece el columna para ser el ancho de su terminal. Opcionalmente puede pasar el argumento para establecer el ancho en un número arbitrario de su elección.

Casi como la sugerencia de Josh, pero :-) menos mágica

+0

Menos magia, pero mejor. Bien hecho. –

+2

Resulta que Josh funciona si realmente quieres hacer esto desde '.Rprofile', pero esto no es así. Aparentemente 'Sys.getenv (" COLUMNS ")' no funciona aún cuando se ejecuta '.Rprofile'. Por lo tanto, esta respuesta solo es útil si no desea que 'wideScreen()' se llame automáticamente. –

+0

Si desea llamar a 'wideScreen()' desde .Rprofile para que se llame automáticamente, debe asegurarse de que sea una variable de entorno. Intenta escribir 'env | grep COLUMNS' en la terminal y si no ve nada, agregue 'export COLUMNS' a su archivo .bash_rc. – Garrett

0

Puede usar la guía TK, creo que la opción era --ui=TK o algo como esto.

¿O es un requisito difícil de usar en el terminal?

37

Conjunto con algo como

options("width"=200) 

que de hecho es lo que tengo en ~/.Rprofile. Ver ayuda (opciones) para más detalles.

16

Robando una idea de Brendan O'Connor's util.R (http://github.com/brendano/dlanalysis/blob/master/util.R), puede hacer que su terminal R establezca el ancho predeterminado con el comando stty. Remunging su escritura para trabajar en Linux, se obtiene el siguiente atractiva 1 forro:

options(width=as.integer(system("stty -a | head -n 1 | awk '{print $7}' | sed 's/;//'", intern=T))) 
+3

Maldita sea que un trazador de líneas es sexy. –

+2

Para mac 10.8.5 es 'options (width = as.integer (system (" stty -a | head -n 1 | awk '{print $ 6}' ", intern = T)))' – Alan

+0

Ver también la respuesta por @plhn usando 'tput cols' en una llamada al sistema. – steveb

7

Yo uso este:

wideScreen <- function(howWide=as.numeric(strsplit(system('stty size', intern=T), ' ')[[1]])[2]) { 
    options(width=as.integer(howWide)) 
} 

Debido a que la variable COLUMNS medio ambiente, y tset, no se actualizan cuando se cambia el tamaño de la ventana, pero stty size es.

+0

Este parece ser el enfoque más robusto. Desafortunadamente no funciona en Windows ... pero puedo vivir con eso. –

7

Inserte esta línea a su ~/.Rprofile

options(width=system("tput cols", intern=TRUE)) 
Cuestiones relacionadas