[R] Simple vector question.

rkevinburton at charter.net rkevinburton at charter.net
Sat Jul 26 08:30:32 CEST 2008


Thank you this is exactly what I wanted.

I was unaware of the 'aggregate' function.

Now what if I want to know the sum of the sales per day AND per Category? So for the data below the DayOfYearSales for HOLIDAY and day 1 would be 2.

Thank you.

Kevin

---- jim holtman <jholtman at gmail.com> wrote: 
> Is this what you want:
> 
> > x
>     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
> 600 2007         2 139002        1 10413               GIRLS Historical Girls
> 601 2007         2 138959        1 10322                BOYS TV & Movies Boys
> 602 2007         2 139005        1 10334                BOYS    Toddlers Boys
> 603 2007         2 139052        1 10517                PLUS         Plus Men
> 604 2007         2 138906        1 10322                BOYS TV & Movies Boys
> 605 2007         2 138860        1     0           (Unknown)        (Unknown)
> > aggregate(x$Quantity, list(DayOfYear=x$DayOfYear), FUN=sum)
>   DayOfYear x
> 1         1 5
> 2         2 6
> >
> 
> 
> On Sat, Jul 26, 2008 at 12:06 AM,  <rkevinburton at charter.net> wrote:
> > I have some data that I read in via read.csv:
> >
> >  sales2007 <- read.csv("Total2007.dat", header=TRUE)
> >
> > The data looks like:
> >
> >> sales2007[1:605,]
> >  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
> > . . . .
> > 600 2007         2 139002        1 10413     GIRLS Historical Girls
> > 601 2007         2 138959        1 10322      BOYS TV & Movies Boys
> > 602 2007         2 139005        1 10334      BOYS    Toddlers Boys
> > 603 2007         2 139052        1 10517      PLUS         Plus Men
> > 604 2007         2 138906        1 10322      BOYS TV & Movies Boys
> > 605 2007         2 138860        1     0 (Unknown)        (Unknown)
> >>
> >
> > The DayOfYear goes from 1:365. I would like to form a vector from this data where the length of the vector is 365 and the value at each index coeresponds to the sum of the Quantity column where DayOfYear equals the index. For example if I was to use just the sample above this new vactor call it 'DayOfYearSales' would be:
> >     DayOfYearSales[1] = 5
> >     DayOfYearSales[2] = 6
> > Since in the snippet above only DayOfYear = 1:2  is shown. I want to continue the sum for the whole data frame. I am sure this is fairly easy. I just cannot find out how to do it. Once I figure this out it would be relatively straightforward to apply the same principle to columns of like Category, SKU, or SubCategory.
> >
> > Something like:
> >
> > table(Category)
> >
> > would give me the number of entires for each unique value but I want the Quantity column used in this tabulation kind of like a frequency.
> >
> > Thank you.
> >
> > Kevin
> >
> > ______________________________________________
> > 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.
> >
> 
> 
> 
> -- 
> Jim Holtman
> Cincinnati, OH
> +1 513 646 9390
> 
> What is the problem you are trying to solve?



More information about the R-help mailing list