[R] Counting entries to create a new table

Dennis Murphy djmuser at gmail.com
Wed Nov 2 01:09:41 CET 2011


Hi:

After cleaning up your data, here's one way using the plyr  and
reshape packages:

d <- read.csv(textConnection("
Individual, A, B, C, D
Day1, 1,1,1,1
Day2, 1,3,4,2
Day3, 3,,6,4"), header = TRUE)
closeAllConnections()

d
library('plyr')
library('reshape')
# Stack the variables
dm <- melt(d, id = 'Individual')
# Convert the new value column to factor as follows:
dm$value <- factor(dm$value, levels = c(1:7, NA), exclude = NULL)
# Use ddply() in conjunction with tabulate():
ddply(dm, .(variable), function(d) tabulate(d$value, nbins = 8))
  variable V1 V2 V3 V4 V5 V6 V7 V8
1        A  2  0  1  0  0  0  0  0
2        B  1  0  1  0  0  0  0  1
3        C  1  0  0  1  0  1  0  0
4        D  1  1  0  1  0  0  0  0

This returns a data frame. If you want a matrix instead, use the
daply() function rather than ddply() and leave everything else the
same.

HTH,
Dennis

On Tue, Nov 1, 2011 at 1:05 PM, Empty Empty <phytophthorasb at yahoo.com> wrote:
> Hi,
>
> I am an R novice and I am trying to do something that it seems should be fairly simple, but I can't quite figure it out and I must not be using the right words when I search for answers.
>
> I have a dataset with a number of individuals and observations for each day (7 possible codes plus missing data)
> So it looks something like this
>
> Individual A, B, C, D
> Day1 1,1,1,1
> Day 2 1,3,4,2
> Day3 3,,6,4
> (I've also tried transposing it so that individuals are rows and days are columns)
>
> I want to summarize the total observation codes by individual so that I end up with a table something like this:
>
> ,  1, 2 ,3 ,4, 5, 6,7, missing
> A  2,0,1,0,0,0,0,0
> B  1,0,1,0,0,0,0,1
> C  1,0,0,1,0,1,0,0
> D 1,1,0,1,0,0,0,0
>
> If I can get that I'll be happy! Part two is
>  subsetting which days I include in the counts so that I could, say look at days 1-30 and 30-60 separately - create two different tables from the same original table. (Or I can do it manually and start with different subsets of the data).
>
> Thanks so much for any help.
>        [[alternative HTML version deleted]]
>
>
> ______________________________________________
> 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