error in ddply function sum?

plyr, r

Solution

There are two problems with your approach:

- You need to tell `ddply` what to sum (`Area`). If you don't specify the column, `ddply` sums the values of all columns (`ID`, `per`, and `Area`).

- You could aggregate the data with the `summarise` argument.

This code works:

x <- read.table(text="  ID LC  per     Area
1  1  7 0.29  62428.3
2  1  7 0.79 170063.3
3  1  4 0.40  86108.0
4  1  7 0.43  92566.1
5  1  6 1.00 215270.0
6  1  7 0.61 131314.7", header = TRUE)


library(plyr)

ddply(x, .(LC), summarise, sum(Area))

The result:

  LC      ..1
1  4  86108.0
2  6 215270.0
3  7 456372.4

Problem

first time posting here! I am having a problem using the ddply function. I have this table that I would like to summarize using the column "LC", and adding the values in the column "Area": ``` ID LC per Area 1 1 7 0.29 62428.3 2 1 7 0.79 170063.3 3 1 4 0.40 86108.0 4 1 7 0.43 92566.1 5 1 6 1.00 215270.0 6 1 7 0.61 131314.7 ``` Based on this dataframe I would expect exactly this: ``` LC Area 4 86108.0 6 215270.0 7 456372.4 ``` Applying the ddply function I get these results: ``` > ddply(x, 'LC', sum) LC V1 1 4 86113.4 2 6 215278.0 3 7 456406.5 ``` The formatting is perfect, but there is some discrepancies in the values. For example, class 7 should have a value of 456372.4, instead ddply reports a value of 456406.5. A difference of 34.1. All the values are miscalculated. Can someone explain me why I am having this problem? Am I missing something here? Is my code wrong? Thank you!

Original source