Hi:
Here are two ways you could do this, one using dcast() and one using xtabs():
batdat <- structure(list(Time = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L,
2L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 6L, 6L, 6L,
6L), .Label = c("0:00", "0:15", "0:30",
"0:45", "1:00", "1:15"
), class = "factor"), Label = structure(c(1L, 2L, 4L, 4L, 1L,
1L, 2L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L,
2L, 3L, 4L), .Label = c("Morbla", "Ptemac",
"Ptepar", "Ptequa"
), class = "factor"), Number = c(2L, 27L, 21L, 1L, 3L, 1L, 18L,
49L, 2L, 7L, 0L, 18L, 2L, 26L, 1L, 12L, 4L, 18L, 0L, 20L, 4L,
5L, 1L, 16L)), .Names = c("Time", "Label",
"Number"), class "data.frame", row.names = c(NA,
-24L))
library('reshape2')
> dcast(batdat, Time ~ Label, fun.aggregate = sum, value_var =
'Number')
Time Morbla Ptemac Ptepar Ptequa
1 0:00 2 27 0 22
2 0:15 4 18 0 49
3 0:30 2 7 0 18
4 0:45 2 26 1 12
5 1:00 4 18 0 20
6 1:15 4 5 1 16
> with(batdat, xtabs(Number ~ Time + Label))
Label
Time Morbla Ptemac Ptepar Ptequa
0:00 2 27 0 22
0:15 4 18 0 49
0:30 2 7 0 18
0:45 2 26 1 12
1:00 4 18 0 20
1:15 4 5 1 16
You need an aggregation function in dcast() because you have at least
two cases where the same variable is measured twice at the same time.
If that's not supposed to happen, check against this:
> cast(batdat, Time ~ Label, value = 'Number')
Aggregation requires fun.aggregate: length used as default
Time Morbla Ptemac Ptepar Ptequa
1 0:00 1 1 0 2 # <---
2 0:15 2 1 0 1 # <---
3 0:30 1 1 1 1
4 0:45 1 1 1 1
5 1:00 1 1 1 1
6 1:15 1 1 1 1
HTH,
Dennis
On Mon, Aug 8, 2011 at 11:48 AM, Bruce Miller <batsncats at gmail.com>
wrote:> Hi Hadley et all,
>
> I am struggling with reshape2 and melt works and melt_check
> (filtered151) seems fine
>
> My cast command was acast (filtered151, Time ~ Species ~ Number)
>
> ?> melt_check (filtered151)
> Using time, Species as id variables
> $id
> [1] "time" ? ?"Species"
>
> $measure
> [1] "Number"
>
> When I execute cast the data matrix is in the correct order but the data
> values are not included.
> Clearly I am missing something. ?I expected / need to have the column
> values to ?= the values from the input data set for each time block.
>
> ? ? Morbla Ptemac Ptepar Ptequa
> 0:00 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 0:15 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 0:30 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 0:45 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 1:00 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 1:15 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 1:30 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 1:45 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 18:45 ? ? ?0 ? ? ?0 ? ? ?0 ? ? ?0
> 19:00 ? ? ?0 ? ? ?0 ? ? ?0 ? ? ?0
> 19:15 ? ? ?0 ? ? ?0 ? ? ?0 ? ? ?0
> 19:30 ? ? ?0 ? ? ?0 ? ? ?0 ? ? ?0
> 19:45 ? ? ?0 ? ? ?0 ? ? ?0 ? ? ?0
> 2:00 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 2:15 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 2:30 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 2:45 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 20:00 ? ? ?0 ? ? ?0 ? ? ?0 ? ? ?1
> 20:15 ? ? ?0 ? ? ?0 ? ? ?0 ? ? ?0
> 20:30 ? ? ?0 ? ? ?0 ? ? ?0 ? ? ?0
> 20:45 ? ? ?0 ? ? ?0 ? ? ?0 ? ? ?0
> 21:00 ? ? ?0 ? ? ?0 ? ? ?0 ? ? ?0
> 21:15 ? ? ?0 ? ? ?0 ? ? ?0 ? ? ?0
> 21:30 ? ? ?0 ? ? ?0 ? ? ?0 ? ? ?0
> 21:45 ? ? ?0 ? ? ?0 ? ? ?0 ? ? ?0
> 22:00 ? ? ?0 ? ? ?0 ? ? ?0 ? ? ?0
> 22:15 ? ? ?0 ? ? ?0 ? ? ?0 ? ? ?0
> 22:30 ? ? ?0 ? ? ?0 ? ? ?0 ? ? ?0
> 22:45 ? ? ?0 ? ? ?0 ? ? ?0 ? ? ?0
> 23:00 ? ? ?0 ? ? ?0 ? ? ?0 ? ? ?0
> 23:15 ? ? ?0 ? ? ?0 ? ? ?0 ? ? ?0
> 23:30 ? ? ?0 ? ? ?0 ? ? ?0 ? ? ?0
> 23:45 ? ? ?0 ? ? ?0 ? ? ?0 ? ? ?0
> 3:00 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 3:15 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 3:30 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 3:45 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 4:00 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 4:15 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 4:30 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 4:45 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 5:00 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 5:15 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 5:30 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 5:45 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 6:00 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 6:15 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 6:30 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 6:45 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
> 7:00 ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0
>
>
> Data is in long format like this:
>
> Time ? ?Label ? Number
> 0:00 ? ?Morbla ?2
> 0:00 ? ?Ptemac ?27
> 0:00 ? ?Ptequa ?21
> 0:00 ? ?Ptequa ?1
> 0:15 ? ?Morbla ?3
> 0:15 ? ?Morbla ?1
> 0:15 ? ?Ptemac ?18
> 0:15 ? ?Ptequa ?49
> 0:30 ? ?Morbla ?2
> 0:30 ? ?Ptemac ?7
> 0:30 ? ?Ptepar ?0
> 0:30 ? ?Ptequa ?18
> 0:45 ? ?Morbla ?2
> 0:45 ? ?Ptemac ?26
> 0:45 ? ?Ptepar ?1
> 0:45 ? ?Ptequa ?12
> 1:00 ? ?Morbla ?4
> 1:00 ? ?Ptemac ?18
> 1:00 ? ?Ptepar ?0
> 1:00 ? ?Ptequa ?20
> 1:15 ? ?Morbla ?4
> 1:15 ? ?Ptemac ?5
> 1:15 ? ?Ptepar ?1
> 1:15 ? ?Ptequa ?16
>
> ...etc
>
> Bruce
>
> --
> Bruce W. Miller, Ph.D.
> Conservation Ecologist
> Neotropical Bat Project
>
>
> office details
> Gallon Jug, Belize
> Mailing address
> P.O. Box 37, Belize City
> Belize, Central America
> Phone +501-220-9002
>
>
>
> ? ? ? ?[[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.
>