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.

Reply via email to