[R] RESHAPE cast help.

hadley wickham
2008-08-05T21:54:57Z

On Tue, Aug 5, 2008 at 11:59 AM,  <rkevinburton at charter.net>
wrote:
> I have a set of data that is basically sales figures for a given year. It
has columns for Yeaqr, Day Of Year, Sku, SubCatetory, and Category. The first
few lines of data look like:
>  Year DayOfYear    Sku Quantity CatId           Category       SubCategory
> 1 2007         1 100091        1 10862            HOLIDAY         Christmas
> 2 2007         1 100138        1 11160       PET COSTUMES Famous (Licensed)
> 3 2007         1 100194        1 10749 HATS, WIGS & MASKS    Wigs -
Women's
> 4 2007         1 100432        1 10865            HOLIDAY            Easter
> 5 2007         1 100911        1 10120                MEN   Superheroes Men
>
> So I have the following to help me summarize the data by the various
columns:
>
> library("reshape")
> t <- melt(t2007,
id.var=c("DayOfYear","Category","SubCategory","Sku"),
measure.var=c("Quantity"))
>
> The following seems to give me the sales for each day of the year:
>
> head(cast(t, DayOfYear ~ variable, sum))
>  DayOfYear Quantity
> 1         1      861
> 2         2     1732
> 3         3     2124
> 4         4     1801
> 5         5     2147
> 6         6     1312
>
> Now I want to get the sales by day of year AND category. But the following
doesnt seem right:
>
> head(cast(t, DayOfYear ~ Category ~ variable, sum))
> [1] NA  2 NA NA  2 NA

Have a look at

cast(t, DayOfYear ~ Category ~ variable, sum)

it's a 3d array - probably not what you want.  You probably want

cast(t, DayOfYear + Category ~ variable, sum)

I'd suggest reading through the introduction to reshape pdf too.

Hadley

--