[R] How do I tapply to a data frame with arbitrary column labels?
Gabor Grothendieck
ggrothendieck at gmail.com
Fri Dec 12 02:19:07 CET 2008
Look at rowsum or aggregate:
> Lines <- "class pigeon falcon propeller jet wing fly
+ birds 25 37 0 0 2 1
+ planes 0 1 28 40 1 3
+ birds 19 41 0 1 4 6
+ planes 0 0 25 50 5 5
+ planes 1 0 30 45 3 5"
>
> DF <- read.table(textConnection(Lines), header = TRUE)
> rowsum(DF[-1], DF[,1])
pigeon falcon propeller jet wing fly
birds 44 78 0 1 6 7
planes 1 1 83 135 9 13
> aggregate(DF[-1], DF[1], sum)
class pigeon falcon propeller jet wing fly
1 birds 44 78 0 1 6 7
2 planes 1 1 83 135 9 13
On Thu, Dec 11, 2008 at 6:25 PM, Bill McNeill (UW)
<billmcn at u.washington.edu> wrote:
> I have a data file that looks like this
>
> class pigeon falcon propeller jet wing fly
> birds 25 37 0 0 2 1
> planes 0 1 28 40 1 3
> birds 19 41 0 1 4 6
> planes 0 0 25 50 5 5
> planes 1 0 30 45 3 5
>
> There may be an arbitrary number of unique class labels and an
> arbitrary number of uniquely named columns. I use read.table to read
> my file into a data frame. I then want to take the sum of all the
> column values for each of the class types. That is I want to end up
> with:
>
> class pigeon falcon propeller jet wing fly
> birds 44 78 0 1 6 7
> planes 1 1 83 135 9 13
>
> where (pigeon, birds) = 25 + 19 = 44, (propeller, planes) = 28 + 25 +
> 30 = 83, etc.
>
> I see how to use tapply to get the sum for each individual column, e.g.
>
>> tapply(data$falcon, data$class, sum)
> birds planes
> 78 1
>
> But I can't figure out what command will do these sums for the entire
> data frame without me having to specify the column names in the
> command.
>
> Thanks.
> --
> Bill McNeill
> http://staff.washington.edu/billmcn/index.shtml
>
> ______________________________________________
> 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