[R] aggregate and sum on some columns fromduplicate rows
arun
smartpink111 at yahoo.com
Sat Mar 1 00:50:59 CET 2014
Hi,
You could use ?ddply
library(plyr)
cbind(ddply(dat,.(St.Sam,Sp),function(x) x[!duplicated(x$Var1),])[,-c(5:6)],ddply(dat,.(St.Sam,Sp),colwise(sum,.(NT,PT)))[,-c(1:2)])
St.Sam Sp Var1 Var2 NT PT
1 ST1.S1 Sp1 12 aa 23 37
2 ST1.S1 Sp2 32 bb 45 26
3 ST1.S1 Sp3 47 cc 89 35
4 ST1.S2 Sp1 25 dd 29 66
5 ST1.S2 Sp2 59 ee 89 35
6 ST2.S1 Sp1 15 aa 30 45
7 ST2.S1 Sp2 45 cc 55 23
8 ST2.S1 Sp3 27 aa 85 12
9 ST2.S1 Sp4 42 cc 8 3
10 ST3.S1 Sp1 25 aa 26 69
11 ST3.S1 Sp2 36 bb 65 48
A.K.
On Friday, February 28, 2014 6:47 PM, ltdm <Luis.Tito-de-Morais at ird.fr> wrote:
Hi again,
Sorry for disturbing. After posting I suddenly found a solution.
As it may help someone else here it goes.
df
du1 <- duplicated(df[,c("St.Sam","Species")],fromLast = F)
du2 <- duplicated(df[,c("St.Sam","Species")],fromLast = T)
X <- df[du1|du2,]
aggRows <- aggregate(cbind(NT,PT) ~St.Sam+Species+Var1+Var2, X,sum)
dfNew <- rbind(df[!(du1|du2),], aggRows)
Just need to "polish" dfNew and its OK. But maybe there is a more elegant
solution.
Cheers,
Tito
--
View this message in context: http://r.789695.n4.nabble.com/aggregate-and-sum-on-some-columns-fromduplicate-rows-tp4686040p4686043.html
Sent from the R help mailing list archive at Nabble.com.
______________________________________________
R-help at 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.
More information about the R-help
mailing list