EDIT1: Ich benutze Windows Vista und R 2.12.1R stürzt ab, wenn Form Plotten Dateien
Ich Plotten 84 Karten mit spplot vom MapTools Paket. Ich verwende zwei Ansichtsfenster, eines zum Zeichnen der Karte und eines zum Zeichnen eines Trends im Laufe der Zeit. Ich habe eine Schleife geschrieben, die jede Teilmenge der Daten durchläuft, die Karte mit farbcodierten Ländern nach ihren Bewertungen grafisch darstellt und den Trend in dieser Punktzahl über Iterationen hinweg darstellt. Die Schleife sieht wie folgt aus:
##Read in the shape file, it is 48mb
eu27 <- readShapeSpatial("C:/Users/Thomas/Documents/EU27_shapefile/eu27_cyp.shp",proj4string=CRS ("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"))
##Drop not used variables from the shapefile data table
[email protected] <- data.frame(Order = 1:dim(eu27)[1], Country = as.character([email protected][,c("NAME_ISO")]))
##Fix longitude and lattitude for plotting later
xl <- c(-15,36)
yl <- c(33,73)
##Set the directory for storing the plots
setwd("C:/Users/Thomas/Documents/maps/")
##Define the breaks and colors
brks <- seq(0,8,1)
colcode <- terrain.colors(length(brks))
##Count used in the loop to keep track of iterations
count <- 1
##Vector to store the trend in time
total <- vector()
##Beginning of loop
for(i in 2001:2003){
for(j in 1:12){
##Subset the data and merge it with the shape file data table
dat <- d3[d3$Year == i & d3$Month == j, c("No","No.Neg","Country")]
eu27dat <- merge([email protected],dat, by="Country", all.x=TRUE)
[email protected] <- eu27dat[order(eu27dat$Order),]
[email protected]$tot <- [email protected]$No + [email protected]$No.Neg
##Store the map plot with countries color coded in the plot1 object
plot1 <- spplot(eu27, "tot", main = paste("Year: ",i,", Month: ",j, sep = ""), xlim=xl, ylim=yl, at = brks, col.regions = colcode)
##Remove the variables created
[email protected]$No <- NULL
[email protected]$No.Neg <- NULL
[email protected]$tot <- NULL
##Update the vector with trend data from the current iteration
total[count] <- sum(dat$No.Neg, na.rm = T)
##Store the trend data plot in the plot2 object
plot2 <-xyplot(total ~ 1:length(total), type = "b", xlab = "Time", ylab = "No Votes", ylim = c(-1,4))
##Open a PNG device
png(file = paste("mapNo",count,".png", sep = ""),width=20, height=12, units="cm",bg="white", pointsize=20, res=300)
##Create two viewports for the two plots created above
pushViewport(viewport(layout = grid.layout(1, 2, unit(c(2, 1), "null"))))
##Print plot1 in the first viewport
pushViewport(viewport(layout.pos.col = 1, layout.pos.row = 1))
print(plot1, newpage = F)
upViewport()
##Print plot2 in the second viewport
pushViewport(viewport(layout.pos.col = 2, layout.pos.row = 1))
print(plot2, newpage = F)
upViewport()
##Close the device
dev.off()
##Update the count
count <- count + 1
}
}
Das Problem ist, dass R nach 8 Iterationen abstürzt, vermute ich, dass ich irgendwie riesige Mengen an Speicher bin mit, aber ich habe wirklich keine Ahnung, was los ist.
EDIT2: Ich bekomme eine Windows-Fehlermeldung, die besagt, (von Germahn übersetzt): Die R für Windows-Frontend funktioniert nicht mehr
EDIT3: Ich habe aus dem Windows Task-Manager, die Speicherverwendung worden Überwachung , und nach 8 Iterationen ist der Speicher fast vollständig verbraucht.
EDIT4: Ich bekomme den gleichen Fehler bei der Verwendung verschiedener Grafikgeräte (PNG, JPEG, PDF). Ich konnte die Schleife ausführen, ohne die Ansichtsfenster zu verwenden, daher vermute ich, dass dies mit den Ansichtsfenstern zusammenhängt.
Best, Thomas
Was meinst du mit R crashes? Wie es automatisch endet, oder einen Fehler oder sogar etwas anderes zurückgibt? Wenn es sich um ein Speicherproblem handelt und Sie Windows verwenden, versuchen Sie, R mit '--max-mem-size = 2047M' als Befehlszeilenparameter zu starten. – Henrik
Durch Öffnen des Task-Managers können Sie die Menge des verwendeten Speichers (oder verfügbar) unter der Registerkarte Leistung sehen. Das sollte Ihnen Hinweise geben, wenn Ihr Programm tatsächlich Speicherprobleme hat. –
Es könnte das Png-Gerät sein. Versuchen Sie stattdessen, pdf zu verwenden. Siehe auch: http://stackoverflow.com/questions/4270349/ggsave-png-error-with-larger-size BTW: Es ist einfacher, wenn Sie erwähnen, welche R-Version und Betriebssystem Sie verwenden. Einige Dinge wurden behoben. Auch der Fehler, den Sie bekommen, wäre interessant. –