[vox-tech] which tool is right for the job... (scripting languages)

Luke Crawford luke at prgmr.com
Fri Oct 1 13:37:20 PDT 2004


depending on how large your dataset is, you may be able to do it with 
perl hashes- something like this:

perl -e '

while ($line=<STDIN>){
    chomp($line);($key,$percent,$value)=split(/,/,$line);
    $hash{$key}->{value}+=$percent;
}
foreach $key (keys(%hash)){
    foreach $value(keys(%$key)){
       $max{$key}=$hash{$key}->{$value} if($hash{$key}->{$value} >$max{key});

    }
    foreach $key(keys(%hash)){ print "$key,$max{$key}\n"}
}


or something like that.

On Fri, 1 Oct 2004, Dylan Beaudette wrote:

> Greetings,
>
> I have a flat text file with records with the following properties:
> key, percent, class
>
> For any given key, there may be more than one record - with any 1 of 12 
> possible classifications. The records occur in 2 types of patterns:
>
> 1) For a given key, it is clear which class is 'dominant' , as its percentage 
> is the highest:
> ------------------------
> 458986,60,Inceptisols
> 458986,25,Mollisols
> ------------------------
>
> 2) For a given key, it is not alway clear which class is dominant, as some 
> simple addition needs to be done in order to calculate the dominant class
> ------------------------
> 458987,30,Inceptisols
> 458987,30,Inceptisols
> 458987,20,Mollisols
> ------------------------
>
> For the first instance the dominant class could easily be extracted by 
> sorting the records, but the second instance requires some addition and 
> comparison... As the data is often more like the second instance, a 
> generalized addition and comparison of classes for each unique key would be 
> ideal.
>
> I am wondering what the best tool for doing this would be... I would like to 
> keep the operation done with a minimal set of tools (i.e. bash and awk, 
> python, perl) ... but unfortunatley I have not been able to get the program 
> logic with bash quite right (i am more used to C style languages...)
>
> I know this is a littlew vague but any ideas on how to aggregate the various 
> classes, and then compare them would be greatly appreciated!
>
> Thanks in advance!
>
> Dylan
> _______________________________________________
> vox-tech mailing list
> vox-tech at lists.lugod.org
> http://lists.lugod.org/mailman/listinfo/vox-tech
>


More information about the vox-tech mailing list