2016-06-10 8 views
0

Liebe Stackoverflow'ers!speichern mehrere plots r in separaten jpg

Ich habe einfache Datenbank, App. 130 Variablen, 1500 Datensätze und viele ähnliche Plots zu erstellen. Ich versuche zu vermeiden, sie von Hand zu speichern. Die for-Schleife funktioniert perfekt für Plots (in RStudio).

Here are the data als .csv auf Dropbox.

Ich möchte die Plots in einem Verzeichnis als separate .png oder .jpg-Dateien speichern. Ich habe einige Hinweise gefunden here. Der Code sieht wie folgt aus:

data <- select(df,v1,v2,v3,v4,v5,v6,v7) 
variables <- names(data) 

for (i in data) { 
    png(paste0("plots/plot_",names(data)[i],".png")) 
    sjp.frq(i) 
    dev.off() 
} 

ich absichtlich den sjp.frq Ausdruck vereinfacht nicht der Code unnessecarely kompliziert zu machen.

Und hier ist das Problem. Ich bekomme nur einzelne .png Datei im Ordner. Wo mache ich Fehler? Es sollte sieben von ihnen geben.

Mit freundlichen Grüßen, MaciejB.

PS. Ich folge dem Vorschlag, den Code reproduzierbar zu machen, und füge eine Probe meiner Datenbank hinzu. Wenn ich z. B. Iris verwende, funktioniert es. Es scheint etwas mit meinen Daten nicht in Ordnung zu sein, einige NA's vielleicht? Aber wenn ich na.omit() benutzt habe, ist es das gleiche.

PS.2 Ich überprüfte eine andere Plotfunktionen wie hist() oder plot(), aber es ist das gleiche. Nur ein Grundstück erstellt und gespeichert.

+1

Bitte versuchen Sie den Code reproduzierbar zu machen. Zum Beispiel, machen Sie einige Plots mit 'iris' oder' mtcars'. Ohne reproduzierbaren Code können wir nur raten, was passiert. – Andrie

+1

Was ist 'dane'? – zx8754

+0

Danke, es ist fertig. Ich fügte den ursprünglichen Datensatz hinzu und korrigierte 'dane'. –

Antwort

0

Das funktioniert hier!

data1 <- read.csv2("~/Temp/data.csv", header=TRUE) 
data <- select(data1,v1,v2,v3,v4,v5,v6,v7) 
variables <- names(data) 
dane=1:length(variables) 
for (i in dane) { #i=2 
    png(paste0("Temp/plot_",names(data)[i],".png")) 
    sjp.frq(data[,i],title = names(data)[i]) 
    dev.off() 
} 

Hier 3 aller Stellplätze:

enter image description here enter image description here enter image description here

+0

Jetzt reden wir! ;) Danke vielmals. Es hat auch für mich funktioniert;) Könntest du mir ein paar Worte der Erklärung schreiben? Habe ich Recht, dass die Loop-Parameter falsch waren? Vor allem Benennen/Abrufen der Variablen? –

+0

Ich denke, das Problem besteht darin, die Dateien zu benennen. In Ihrem Code nimmt das 'i' die Spalte hole an, dann gibt' paste0' Ihnen einen Vektor von Strings statt einer Zeichenfolge zum Namen der Datei. – Robert