try aggregate(), e.g., dat <- read.table(textConnection("long lat value
10 20 5 6 2 3 27 -3 9 10 20 10 4 -1 0 6 2 9"), header = TRUE) closeAllConnections() aggregate(dat["value"], list(Long = dat$long, Lat = dat$lat), sum) I hope it helps. Best, Dimitris Steve Murray wrote:
Dear all, I have a dataframe of 3 columns, consisting of 'longitude', 'latitude' and a corresponding 'value'. Where identical 'longitude' and 'latitude' pairs occur more than once, I want their corresponding 'value' to be summed and the 'pair' to only appear once. For example: long lat value 10 20 5 6 2 3 27 -3 9 10 20 10 4 -1 0 6 2 9 would be converted to something like: long lat value 10 20 15 6 2 12 27 -3 9 4 -1 0 ...as rows 1 and 4, 2 and 6 respectively are matched with respect to the 'long' and 'lat' columns. Their values in column 3 are then summed and reported as one row in the new dataframe. How would I go about coding this in R? Many thanks, Steve _________________________________________________________________ Are you a PC? Upload your PC story and show the world ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
-- Dimitris Rizopoulos Assistant Professor Department of Biostatistics Erasmus Medical Center Address: PO Box 2040, 3000 CA Rotterdam, the Netherlands Tel: +31/(0)10/7043478 Fax: +31/(0)10/7043014 ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.