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.
>
>