Hello, I have a long list of x-, y- and z-data and try to generate a heatmap. Obviously there are several data with identical x- and y-values. I get the following error message: Error in interp.old(x, y, z, xo = xo, yo = yo, ncp = 0, extrap = extrap, : duplicate data points: need to set 'duplicate = ..' Unfortunately there seems no help screen on "duplicate". I'd prefer to average the z-values in case there are identical x/y-values. Is that possible? If necessary for an answer I'll copy the short script below. Thanks for helping! Richard ----%---- #RM?u 5.2.2013, r.mueller at oeko-sorpe.de require(akima) # Das Paket akima wird ben?otigt, um # nicht vorhandene Punkte zu interpolieren# und einen sch?onen Farbgradienten hinzukriegen sorpe <- read.csv("bis_130204-korr.csv") pdf("sorpe.pdf") # Es wird nicht auf den Bildschirm gezeichnet, # sondern ein PDF-Dokument erstellt. zr <- range(290,220) # Hier wird der Bereich f?ur die z-Werte# festgelegt: plot(ylim = c(7.9, 8), # Der Bereich der Achsen wird definiert xlim = c(51.30, 51.4), x ~ y, # Es soll ein x-y-Diagramm werden sorpe, # Aufruf der x-, y-, z-Tabelle pch = NA) # Die Punkte f?ur die x-y-Wertepaare sollen unsichtbar sein (?NA?) sorpe.li <- interp(sorpe$x, sorpe$y, sorpe$z) # Hier werden die fehlenden Punkte interpoliert image(sorpe.li, # In das Diagramm wird ein Rasterbild aus den interpolierten Werten gezeichnet zlim = zr, # Der vorher definierte Wertebereich wird aufgerufen col = rev(rainbow( # Ein in R vordefiniertes Farbmodell wird verwendet 30, start = 0, end = 8/12)), # mit 30 Farbabstufungen, die den z-Werten zugeordnet werden. add = TRUE) # Das Bild wird ?uber das bereits Vorhandene# gezeichnet contour(sorpe.li, # Isohypsen werden eingezeichnet add = TRUE) points(sorpe, # Die urspr?unglichen Messpunkte werden pch = 1) # eingezeichnet, und zwar als Kreise -- Richard M?ller . Am Spring 9 . D-58802 Balve http://www.oeko-sorpe.de - http://www.phytoplankton.info - http://independent.academia.edu/Richard
Hello, From ?interp.old duplicate character string indicating how to handle duplicate data points. Possible values are "error" produces an error message, "strip" remove duplicate z values, "mean","median","user" calculate mean , median or user defined function (dupfun) of duplicate z values. HTH, Pascal Le 13/02/05 16:06, Richard M?ller a ?crit :> Hello, > > I have a long list of x-, y- and z-data and try to generate a heatmap. > Obviously there are several data with identical x- and y-values. I get > the following error message: > > Error in interp.old(x, y, z, xo = xo, yo = yo, ncp = 0, extrap = extrap, : > duplicate data points: need to set 'duplicate = ..' > > Unfortunately there seems no help screen on "duplicate". I'd prefer to > average the z-values in case there are identical x/y-values. Is that > possible? > > If necessary for an answer I'll copy the short script below. > > Thanks for helping! > Richard > > ----%---- > #RM?u 5.2.2013, r.mueller at oeko-sorpe.de > require(akima) # Das Paket akima wird ben?otigt, um > # nicht vorhandene Punkte zu interpolieren# und einen sch?onen > Farbgradienten hinzukriegen > sorpe <- read.csv("bis_130204-korr.csv") > pdf("sorpe.pdf") # Es wird nicht auf den Bildschirm gezeichnet, > # sondern ein PDF-Dokument erstellt. > zr <- range(290,220) # Hier wird der Bereich f?ur die z-Werte# festgelegt: > > > plot(ylim = c(7.9, 8), # Der Bereich der Achsen wird definiert > xlim = c(51.30, 51.4), > x ~ y, # Es soll ein x-y-Diagramm werden > sorpe, > # Aufruf der x-, y-, z-Tabelle > pch = NA) # Die Punkte f?ur die x-y-Wertepaare sollen unsichtbar sein (?NA?) > sorpe.li <- interp(sorpe$x, sorpe$y, sorpe$z) > # Hier werden die fehlenden Punkte interpoliert > image(sorpe.li, # In das Diagramm wird ein Rasterbild aus den > interpolierten Werten gezeichnet > zlim = zr, # Der vorher definierte Wertebereich wird aufgerufen > col = rev(rainbow( # Ein in R vordefiniertes Farbmodell wird verwendet > 30, start = 0, end = 8/12)), > # mit 30 Farbabstufungen, die den z-Werten zugeordnet werden. > add = TRUE) # Das Bild wird ?uber das bereits Vorhandene# gezeichnet > contour(sorpe.li, # Isohypsen werden eingezeichnet > add = TRUE) > points(sorpe, # Die urspr?unglichen Messpunkte werden > pch = 1) # eingezeichnet, und zwar als Kreise > > > > >
Hello, To average the values of z in case of duplicated x and y, you can use s2 <- aggregate(z ~ x + y, data = sorpe, FUN = mean) Hope this helps, Rui Barradas Em 05-02-2013 07:06, Richard M?ller escreveu:> Hello, > > I have a long list of x-, y- and z-data and try to generate a heatmap. > Obviously there are several data with identical x- and y-values. I get > the following error message: > > Error in interp.old(x, y, z, xo = xo, yo = yo, ncp = 0, extrap = extrap, : > duplicate data points: need to set 'duplicate = ..' > > Unfortunately there seems no help screen on "duplicate". I'd prefer to > average the z-values in case there are identical x/y-values. Is that > possible? > > If necessary for an answer I'll copy the short script below. > > Thanks for helping! > Richard > > ----%---- > #RM?u 5.2.2013, r.mueller at oeko-sorpe.de > require(akima) # Das Paket akima wird ben?otigt, um > # nicht vorhandene Punkte zu interpolieren# und einen sch?onen > Farbgradienten hinzukriegen > sorpe <- read.csv("bis_130204-korr.csv") > pdf("sorpe.pdf") # Es wird nicht auf den Bildschirm gezeichnet, > # sondern ein PDF-Dokument erstellt. > zr <- range(290,220) # Hier wird der Bereich f?ur die z-Werte# festgelegt: > > > plot(ylim = c(7.9, 8), # Der Bereich der Achsen wird definiert > xlim = c(51.30, 51.4), > x ~ y, # Es soll ein x-y-Diagramm werden > sorpe, > # Aufruf der x-, y-, z-Tabelle > pch = NA) # Die Punkte f?ur die x-y-Wertepaare sollen unsichtbar sein (?NA?) > sorpe.li <- interp(sorpe$x, sorpe$y, sorpe$z) > # Hier werden die fehlenden Punkte interpoliert > image(sorpe.li, # In das Diagramm wird ein Rasterbild aus den > interpolierten Werten gezeichnet > zlim = zr, # Der vorher definierte Wertebereich wird aufgerufen > col = rev(rainbow( # Ein in R vordefiniertes Farbmodell wird verwendet > 30, start = 0, end = 8/12)), > # mit 30 Farbabstufungen, die den z-Werten zugeordnet werden. > add = TRUE) # Das Bild wird ?uber das bereits Vorhandene# gezeichnet > contour(sorpe.li, # Isohypsen werden eingezeichnet > add = TRUE) > points(sorpe, # Die urspr?unglichen Messpunkte werden > pch = 1) # eingezeichnet, und zwar als Kreise > > > > >