Re: [R] Assoociative array?

From: <rkevinburton_at_charter.net>
Date: Tue, 15 Jul 2008 05:33:12 -0700


Sure.

I have the following command:

sc <- split(x, list(x$Category, x$SubCategory), drop=TRUE)

where x is

x <- read.csv("Sales2007.dat", header=TRUE)

and the first few rows are:

DayOfYear,Quantity,Fraction,Category,SubCategory

1,82,0.0000390392720794458,"(Unknown)","(Unknown)"
2,78,0.0000371349173438631,"(Unknown)","(Unknown)"
3,112,0.0000533219325963163,"(Unknown)","(Unknown)"
4,155,0.0000737937460038306,"(Unknown)","(Unknown)"
5,157,0.0000747459233716219,"(Unknown)","(Unknown)"

and str(sc) returns something like:
. . . .

 $ T/C.X MEN 3                                                                                                                                     :'data.frame':       29 obs. of  5 variables:
  ..$ DayOfYear  : int [1:29] 31 37 49 57 63 66 68 78 79 83 ...
  ..$ Quantity   : int [1:29] 1 2 1 1 2 1 1 1 1 1 ...
  ..$ Fraction   : num [1:29] 4.76e-07 9.52e-07 4.76e-07 4.76e-07 9.52e-07 ...
  ..$ Category : Factor w/ 46 levels "(Unknown)","10\" Plates",..: 40 40 40 40 40 40 40 40 40 40 ...   ..$ SubCategory: Factor w/ 246 levels "(Unknown)","70's Disco",..: 246 246 246 246 246 246 246 246 246 246 ...
 $ Thank You.X MEN 3                                                                                                                               :'data.frame':       8 obs. of  5 variables:
  ..$ DayOfYear  : int [1:8] 37 66 240 246 276 287 316 351
  ..$ Quantity   : int [1:8] 4 2 2 1 2 1 13 3
  ..$ Fraction   : num [1:8] 1.90e-06 9.52e-07 9.52e-07 4.76e-07 9.52e-07 ...
  ..$ Category : Factor w/ 46 levels "(Unknown)","10\" Plates",..: 41 41 41 41 41 41 41 41   ..$ SubCategory: Factor w/ 246 levels "(Unknown)","70's Disco",..: 246 246 246 246 246 246 246 246

Just printing 'sc' gives me something like: . . .
$`Pinatas/Accessories.Wiggles`

       DayOfYear Quantity     Fraction            Category SubCategory
111180        61        1 4.760887e-07 Pinatas/Accessories     Wiggles
111181        88        1 4.760887e-07 Pinatas/Accessories     Wiggles
111182        91        1 4.760887e-07 Pinatas/Accessories     Wiggles
111183        99        2 9.521774e-07 Pinatas/Accessories     Wiggles
111184       102        1 4.760887e-07 Pinatas/Accessories     Wiggles
. . .

Now basically I want to know how to iterate throwgh sc. I can print out sc[[1]] etc. from R console and get something like:

> sc[[1]]

    DayOfYear Quantity     Fraction  Category SubCategory
1           1       82 3.903927e-05 (Unknown)   (Unknown)
2           2       78 3.713492e-05 (Unknown)   (Unknown)
3           3      112 5.332193e-05 (Unknown)   (Unknown)
4           4      155 7.379375e-05 (Unknown)   (Unknown)

And I know the length of sc is
> length(sc)

[1] 2415

So basically I want to do some kind of summary statistics for each of these groups from 1 to 2415. I have tried this and it doesn't work but I want something like

for(i in 1:length(sc)
{

    mean(sc[[i]]$Quantity)
}

I would like similar statistics for median, mode, variance, range, etc. for each group

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. Received on Tue 15 Jul 2008 - 12:36:17 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Tue 15 Jul 2008 - 13:31:44 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive