[R] rowsum- is there a countsum

jim holtman jholtman at gmail.com
Sat Jan 26 15:48:43 CET 2008


Is this what you are looking for in doing computations on the columns
of a dataframe?

> x <- data.frame(group=sample(1:2,10,TRUE),A=sample(1:4,10,TRUE),B=sample(1:5,10,TRUE),
+     C=sample(1:3,10,TRUE))
> x
   group A B C
1      1 2 4 1
2      2 4 1 2
3      1 3 2 1
4      2 3 2 2
5      2 4 2 2
6      1 2 5 1
7      2 1 5 2
8      1 1 5 3
9      1 4 3 2
10     2 2 1 1
> # sum in each column
> aggregate(x[,-1], list(x$group), sum)
  Group.1  A  B C
1       1 12 19 8
2       2 14 11 9
> # count greater than 2
> aggregate(x[,-1], list(x$group),function(.col) sum(.col>2))
  Group.1 A B C
1       1 2 4 1
2       2 3 1 0
>
>


On Jan 26, 2008 9:13 AM, Anders Bjørgesæter <abjrges at getmail.no> wrote:
> Hello
>
> Is there an analogous function to "rowsum" that count the numbers
> according to a given vector (preferably larger than a given value)
> instead of summing them?
>
> E.g. rowsum(x, group)
>
> X is the dataframe,     A       B       C
>                        5       0       0
>                        1       3       3
>                        0       1       12
> and group is the vector; 1,1,2
>
> rowsum gives:           A       B       C
>                1       6       3       3
>                2       0       1       12
>
>
> I want:                 A       B       C
>                1       2       1       1
>                2       0       1       1
>
> for e.g. count all > 0.
>
> Best Regards
> Anders
>
> ______________________________________________
> 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.
>



-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem you are trying to solve?



More information about the R-help mailing list