On Oct 29, 2009, at 5:23 PM, PDXRugger wrote:
Terrific help thank you.
dupbuild<-aggregate(DF$Acres, list(Bldgid), sum)
This line worked best.
Now im going to challenge everyone (i think?)
Consider the following:
Acres<-c(100,101,100,130,156,.5,293,300,.09,100,12.5)
Bldgid<-c(1,2,3,4,5,5,6,7,7,8,8)
Year<-c(1946,1952,1922,1910,1955,1955,1999,1990,1991,2000,2000)
ImpValue<-c(1000,1400,1300,900,5000,1200,500,1000,300,1000,1000)
DF=cbind(Acres,Bldgid,Year,ImpValue)
DF<-as.data.frame(DF)
I would like to do the same, except there are some rules i want to
follow.
I only want to aggregate the Acres if :
a) The Years are not identical
b) The ImpValues are not identical
c) The Years are identical and the ImpValue are not
d)The ImpValues are identical and the Years are not
As I review your Boolean logic, I run into serious problems.
c) and d) cannot be true if a and b) are true.
So no cases satisfy all 4 specs. In particular both of the pairs you
say you want aggregated (5+6) and 10+11) violate rule a) and the
second pair also violates b).
--
David
but if the Acres and ImpValues are identical i would still like to
add the
Acres together and form one case.
If the cases are put together i would also like to add the ImpValues
together. So the below
Acres Bldgid Year ImpValue
1 100.00 1 1946 1000
2 101.00 2 1952 1400
3 100.00 3 1922 1300
4 130.00 4 1910 900
5 156.00 5 1955 5000
6 0.50 5 1955 1200
7 293.00 6 1999 500
8 300.00 7 1990 1000
9 0.09 7 1991 300
10 100.00 8 2000 1000
11 12.50 8 2000 1000
would become
Acres Bldgid Year ImpValue
1 100.00 1 1946 1000
2 101.00 2 1952 1400
3 100.00 3 1922 1300
4 130.00 4 1910 900
5 156.50 5 1955 6200
7 293.00 6 1999 500
8 300.09 7 1990 1300
10 112.50 8 2000 1000
Thanks, i gave it a bunch of shots but nothing worth posting.
PDXRugger wrote:
Hello All,
I would like to select records with identical IDs then sum an
attribute
then and return them to the data frame as a single record. Please
consider
Acres<-c(100,101,100,130,156,.5,293,300,.09)
Bldgid<-c(1,2,3,4,5,5,6,7,7)
DF=cbind(Acres,Bldgid)
DF<-as.data.frame(DF)
So that:
Acres Bldgid
1 100.00 1
2 101.00 2
3 100.00 3
4 130.00 4
5 156.00 5
6 0.50 5
7 293.00 6
8 300.00 7
9 0.09 7
Becomes
Acres Bldgid
1 100.00 1
2 101.00 2
3 100.00 3
4 130.00 4
5 156.50 5
7 293.00 6
8 300.09 7
dup<-unique(DF$Bldgid[duplicated(Bldgid)])
dupbuild<-DF[DF$Bldgid %in% dup,]
dupbuild..dupareasum<-sum(dupbuild$Acres[duplicated(dupbuild
$Bldgid)])
This sums the unique Ids of the duplicated records, not whati want.
Thanks ahead of time
JR
--
View this message in context:
http://www.nabble.com/Summing-identical-IDs-tp26118922p26121056.html
Sent from the R help mailing list archive at Nabble.com.
______________________________________________
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.
David Winsemius, MD
Heritage Laboratories
West Hartford, CT
______________________________________________
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.