[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