The following module was proposed for inclusion in the Module List:

  modid:       Data::TableAutoSum
  DSLIP:       bdpOp
  description: Tables with automatic col/row/total sums
  userid:      BIGJ (Janek Schleicher)
  chapterid:    6 (Data_Type_Utilities)
  communities:

  similar:
    Data::Pivot Data::Pivoter Data::Xtab

  rationale:

    I first proposed this module with the name Data::CrossTable.
    Following a suggestion of Tim Bunce, I renamed it to
    Data::TableAutoSum.

    This modules handles of tables with automatic generated
    col/row/total sums.

    Setting the values into the tables will force to recalculate the
    sums. That is e.g. used when generating statistical reports.

    Of course, you can use any associative, distributive operation
    instead of sum (e.g. multiplication makes sense when working with
    probabilities). Let's think e.g. to a population count. Let's say we
    want to create a table showing the population in the U.S.A.
    regarding to the towns 'New York', 'Chicago', 'L.A.', 'San
    Francisco', 'Houston' and the sex 'female', 'male'.

    Let's think I've got a big file with information of the population,
    e.g. the phone books. Then I'd like to write a pseudocode like

    my @towns = ('New York', 'Chicago', 'L.A.', 'San Francisco',
    'Houston');

    my @sex = qw/female male/;

    my $population = Data::CrossTable->new(rows => \@sex, cols =>
    \@towns);

    while (<FILE>) {

    my ($town, $sex) = /...../;

    $population->data($sex,$town)++;

    }

    where the populations of each town, each sex and the total
    population are updated in the background.

    Finally we could say, e.g. there are
    population->rowresult('female') women in the big cities.

    Furthermore I'd like to calculate with the CrossTables. E.g. the
    percentuage of inhabitants could be calculated with:

    my $perc_population = $population / $population->totalresult();

    or if we would like to have the more readable 12% reading than the
    0.12, we could write something like my $perc100_population =
    $perc_population->change( sub { $_ *= 100 } );

    Another way is that we have built the tax payings for the big
    cities. Then we could write

    my $tax_per_inhabitent = $tax_per_city_and_sex / $population;

  enteredby:   BIGJ (Janek Schleicher)
  enteredon:   Thu Jul 25 06:01:02 2002 GMT

The resulting entry would be:

Data::
::TableAutoSum    bdpOp Tables with automatic col/row/total sums     BIGJ


Thanks for registering,
The Pause Team

PS: The following links are only valid for module list maintainers:

Registration form with editing capabilities:
  
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=38100000_0c54e2bb24da1d25&SUBMIT_pause99_add_mod_preview=1
Immediate (one click) registration:
  
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=38100000_0c54e2bb24da1d25&SUBMIT_pause99_add_mod_insertit=1

Reply via email to