[R] duplicate data

Rui Barradas ruipbarradas at sapo.pt
Tue Feb 5 12:29:18 CET 2013


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
>
>
>
>
>



More information about the R-help mailing list