2015-04-29 39 views
7

Per il titolo, qualcuno sa perché il rendering di un grafico ggpairs dal pacchetto GGally richiede molto più tempo in RStudio rispetto a Base R (o terminale)?Perché GGally :: ggpairs è notevolmente più lento in RStudio rispetto a Base R?

Esempio:

start.time <- Sys.time() 
ggpairs(mtcars) 
end.time <- Sys.time() 
time.taken <- end.time - start.time 
time.taken 

L'esecuzione di questo in RStudio sulla mia macchina prende dell'ordine di 5 volte più lunghi di R. di base ho sperimentato lo stesso rallentare indipendentemente dal sistema operativo (Windows vs Mac).

Esistono soluzioni alternative?

Altri pacchetti?

In particolare, come eseguire il rendering: GGally::ggpairs(iris, color = "Species") rapidamente senza uscire da RStudio?

+0

È questo il solo dispositivo grafico interno del RStudio? Cosa succede se si avvia un dispositivo grafico indipendente? È ancora lento? [non so come si avvia uno in Windows R, su Unix R è il suo "X11()" ....] – Spacedman

+4

@Spacedman Sembra. Usando 'x11()', poi trama poi 'dev.off()' accelera notevolmente le cose all'interno di RStudio. – JasonAizkalns

+1

Potrebbe essere perché il dispositivo grafico RStudio fa anti-aliasing e trasparenza. – Spacedman

risposta

1

Ho avuto problemi simili e ho trascorso un po 'di tempo a cercare di capire perché. Ho trovato quattro problemi significativi (non una lista esaustiva). Se la tua situazione è come la mia, allora 1 e 2 sono le tue preoccupazioni principali.

  1. IDE. RStudio esegue ggpairs più lentamente di R.
  2. L'ambiente di elaborazione. Non ho le risorse per testarlo estensivamente, ma probabilmente parleremo di GPU, poiché si tratta di un problema di elaborazione grafica.
  3. Numero di variabili. Più variabili = crescita esponenziale nel tempo.
  4. Operazioni sequenziali. Se si sta lavorando su una macchina a basso consumo, è possibile rallentare l'esecuzione con troppe richieste.

Si può leggere di più sul mio github qui: https://github.com/zstachniak/Elapsed-Time-Pairwise-Functions/blob/master/ggpairs.md