in reply to Would Perl be a good choice for this?
Hello Speed_Freak, you question is confusing me: too much data, no code at all, no code from your part, no expected results and I do not really well understand this subgroups and the goal..
But since you are asking where to start.. know your data is a good suggestion and and another good quote sounds like: when you know deeply your data, then algorithm is a matter of simply implementation.
So where to start? ordering => array and indexing => hash
I mean that when you are processing your data you split up elements and fill a datastructure that suits your needs. So the basic is a simple loop that consumes lines of data:
use strict; use warnings; while (<DATA>){ chomp; my @ele = split /\s/,$_;
Now that you has @ele you need to coherce it to your logic: so supposing you need to store which ID ( $ele[0] ) has $ele[1] + $ele[2] you can indexing the $ele[1] $ele[2] presence and use it as key of an hash and pushing IDs as values of an anonymous array:
use strict; use warnings; my %res; while (<DATA>){ chomp; my @ele = split /\s/,$_; push @{ $res{"$ele[1] $ele[2]"} }, $ele[0]; } __DATA__ 1 monkey cow hammer nail 2 monkey sheep hammer nail 3 dog cat hammer nail 4 monkey cow hammer nail
this leads you to a datastructure like: ("dog cat", [3], "monkey sheep", [2], "monkey cow", [1, 4])
If you just need to know which ID has monkey you'll loop keys of the hash searching the pattern monkey as in:
foreach my $key (keys %res){ if ($key =~ /monkey/) { print "monkey [occurence in $key] found in IDs:", (join ', ', @{$ +res{$key}}), "\n";
This is my where to start
L*
PS perldsc and (2004)Using Perl for Statistics: Data Processing and Statistical Computing as readmore suggestions.
L*
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Would Perl be a good choice for this?
by Speed_Freak (Sexton) on Oct 02, 2017 at 20:32 UTC |