2009-07-23 12 views
57

Questo può sembrare banale, ma influenza la mia produttività. Sto usando R in modalità terminale su Linux. A differenza dell'IDE di Windows, Linux limita il numero di colonne a 80, rendendo così più difficile l'ispezione dei set di dati. C'è un modo per impostare il numero massimo di colonne?Come aumentare il numero di colonne usando R in Linux

+0

Quindi nessuna di queste soluzioni sembrano funzionare per StatET? –

risposta

52

Ecco una funzione che ho in ~/.Rprofile di file:

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

Chiamando la funzione senza l'argomento howWide imposta la colonna per essere la larghezza del tuo terminale. Puoi opzionalmente passare l'argomento per impostare la larghezza su un numero arbitrario di tua scelta.

Quasi come suggerimento di Josh, ma :-) meno magia

+0

Meno magia, ma migliore. Ben fatto. –

+2

Si scopre che Josh funziona se in realtà si desidera eseguire questa operazione da ".Rprofile", ma ciò non avviene. Apparentemente 'Sys.getenv (" COLUMNS ")' non funziona ancora quando viene eseguito '.Rprofile'. Quindi questa risposta è utile solo se non vuoi che 'wideScreen()' venga chiamato automaticamente. –

+0

Se si desidera chiamare 'wideScreen()' da .Rprofile in modo che venga chiamato automaticamente, è necessario assicurarsi che sia una variabile di ambiente. Prova a digitare 'env | grep COLUMNS' nel terminale e se non vedi nulla, aggiungi 'export COLUMNS' al tuo file .bash_rc. – Garrett

0

È possibile utilizzare il TK gui, penso che l'opzione fosse --ui=TK o qualcosa del genere.

Oppure è un requisito irrinunciabile utilizzarlo nel terminale?

37

Set con qualcosa come

options("width"=200) 

che in realtà è quello che ho in ~/.Rprofile. Vedi aiuto (opzioni) per i dettagli.

16

Rubare un'idea dall'utilità di Brendan O'Connor.R (http://github.com/brendano/dlanalysis/blob/master/util.R), è possibile ottenere il terminale R per impostare la larghezza predefinita utilizzando il comando stty. Remunging suo script per lavorare su Linux, si ottiene la seguente sexy 1 fodera:

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

Dannazione che una fodera sia sexy. –

+2

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

+0

Vedi anche la risposta per @plhn usando 'tput cols' in una chiamata di sistema. – steveb

7

Io uso questo:

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

Poiché la variabile COLUMNS ambiente, e tset, non vengono aggiornati quando la finestra viene ridimensionata, ma stty size è.

+0

Questo sembra l'approccio più robusto. Sfortunatamente non funziona su Windows ... ma posso conviverci. –

7

Inserire questa riga al vostro ~/.Rprofile

options(width=system("tput cols", intern=TRUE)) 
Problemi correlati