Hi:
Here's one way, although it can be improved a bit.
d1 <- aggregate(C ~ A, data = subset(DF0, B == 1), FUN = sum)
d2 <- subset(DF0, B != 1)
# B not in d1, so need to replace it
> d1
A C
1 52 124
2 57 64
3 89 192
d1$B <- rep(1, nrow(d1))
d1 <- d1[, c(1, 3, 2)] # reorder columns to permit cbinding
DF1 <- rbind(d1, d2)
> DF1[order(DF1$A, DF1$B), ]
A B C
1 52 1 124
19 52 59 38
20 52 97 75
2 57 1 64
26 57 6 26
24 57 114 12
3 89 1 192
21 89 6 20
31 89 29 137
4 89 52 13
5 89 57 10
6 89 97 23
HTH,
Dennis
On Wed, Oct 20, 2010 at 2:42 AM, xtracto <[email protected]> wrote:
>
> Hello,
>
> I am trying to achieve something which I *think* is possible using rowsum,
> but a little help should be useful:
>
> Consider the following dataframe DF0:
> A B C
> 89 1 140
> 89 06 20
> 89 29 137
> 89 52 13
> 89 57 10
> 89 97 23
> 89 1 37
> 89 1 12
> 89 1 3
> 52 1 11
> 52 1 31
> 52 1 16
> 52 1 6
> 52 1 10
> 52 1 13
> 52 1 10
> 52 1 25
> 52 1 2
> 52 59 38
> 52 97 75
> 57 1 14
> 57 1 13
> 57 1 14
> 57 114 12
> 57 1 23
> 57 06 26
>
>
> I need create a new dataframe containing the sums of all the rows where B =
> 1 for the different values of A, keeping the rows with other B values the
> same. That is, for this data sample, the result I expect is something like
> this (the order of the rows does not matter):
>
> A B C
> 89 1 192 #From adding up: [140 + 37 + 12 + 3]
> 89 06 20
> 89 29 137
> 89 52 13
> 89 57 10
> 89 97 23
> 52 1 124 # From adding up: [11 + 31 + 16 + 6 + 10 + 13 + 10 +
> 25 + 2]
> 52 59 38
> 52 97 75
> 57 1 64 #From adding up: [14 +13 +14 +23]
> 57 114 12
> 57 06 26
>
>
> Now, I now it should be possible to first separate the data in two sets,
> where
> DF1 <- DF0[DF0$B != 1,]
> DF2 <- DF0[DF0$B == 1,]
>
> Then I should apply sumrow to DF2 with some "group" vector, but I do not
> know where to go from here.
>
> Can anyone help?
> Thanks in advance!
>
>
> --
> View this message in context:
> http://r.789695.n4.nabble.com/rowsum-tp3003551p3003551.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> [email protected] 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.
>
[[alternative HTML version deleted]]
______________________________________________
[email protected] 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.