Nei miei dati ho più paesi e ogni paese ha 5 prodotti. Ho eseguito una regressione per ciascuna combinazione e ora sto cercando di tracciare i valori previsti rispetto ai valori effettivi sullo stesso grafico, per ciascuna combinazione.Tracciare un grafico in R ed esportarlo in Excel in un loop
Ho 10 paesi in totale e ogni paese ha la propria scheda in un file Excel. Dato che ci sono 5 prodotti, questo è un totale di 50 grafici. Voglio tracciare i grafici in R ed esportarli in Excel in un ciclo. Sto usando excel.link pacchetto ggplot e il problema che sto avendo è che i grafici appaiono come spazio vuoto in Excel o se c'era un grafico in R - quel grafico appare al posto del grafico richiesto.
** Nota: ho ricevuto un errore con il primo grafico che diceva "rversion not found", ma ora ho aggiornato il mio RStudio e non ho più ricevuto questo errore. Il grafico viene comunque esportato in bianco oppure viene visualizzato il grafico precedente
Ecco un ciclo semplificato, simile a quello presente nel mio codice. Se eseguo il ciclo manualmente, cambiando ogni volta i
, tutto viene esportato correttamente. Se si esegue il for loop
, i problemi accadono che ho descritto sopra:
require(excel.link)
set.seed(124)
for(i in 1:5){
# i <- 2
myseq <- seq(1,100, by=1)
norm <- rnorm(100)
mydata <- as.data.frame(cbind(myseq, norm))
colnames(mydata)
ggplot(data = mydata, aes(x=myseq, y=norm, group=1)) + geom_line(size=1, col="blue") +
ggtitle(paste("My Plot ", i))
y.plot=current.graphics()
xl[a1] = list(y.plot)
}
Avete provato a fare un esempio semplificato di grafici 1 e 2? È piuttosto difficile capire dove il grafico 1 stia andando male con tutti i dettagli del mondo reale in gioco. Forse ridurlo a un solo paese, a un prodotto ea un set di dati super-semplice. Indipendentemente da ciò, il mio primo pensiero è che forse il grafico 1 non sta generando una trama e non ha nulla a che fare con 'excel.link'. Hai esportato con successo la trama in un png? – dmp
Ho creato un codice semplice e ottengo lo stesso problema. Se provo a fare il ciclo a mano (cambiando i 5 volte), tutto funziona - ottengo la giusta trama incollata in Excel. Quando eseguo il ciclo for, non funziona. 'for (i in 1: 5) {' ' # i <- 2' ' myseq <- seguenti (1.100, da = 1) '' norma <- RNorm (100) '' mydata <- as.data.frame (cbind (myseq, norma)) ' ' colnames (mydata) ' ' ggplot (data = mydata, aes (x = myseq, y = norma, gruppo = 1)) + '' geom_line (dimensione = 1, col = "blue") + ' ' ggtitle (incolla ("My Plot", i)) ' ' y.plot = current.graphics() ' ' xl [a1] = lista (y. trama) ' '} ' – user1429611
Sarebbe più facile per noi aiutare se hai fatto la tua domanda usando l'esempio più semplice possibile che riproduce il problema.Ad esempio, sto avendo difficoltà a collegare il codice dal tuo commento al codice della tua domanda. Se ha qualcosa a che fare con il ciclo 'for', c'è probabilmente una soluzione semplice che non è correlata a tutti gli altri dettagli. Potrebbe per favore rivedere la domanda per essere più semplice? – dmp