Duh! Of course. Thanks.
Once I've sorted the indices by the dates, in order to rank them; I need to sort the indices by that ranking to get them back into the original order:
#! perl -slw
use warnings;
use strict;
use Data::Dumper;
use Date::Manip;
print scalar <DATA>;
while (<DATA>) {
chomp;
my @dates = split '~';
my $label = shift @dates;
my @order = sort{
Date_Cmp( $dates[ $a ], $dates[ $b ] );
} 0 .. $#dates;
print join "\t", $label, map $_+1, sort{
$order[ $a ] <=> $order[ $b ]
} 0..$#order;
}
__DATA__
EVENT JIM BOB SAM JACK
PTRED~09/29/10 03:23:05 PM ~09/28/10 02:21:09 PM ~09/26/10 11:00:03 AM
+ ~09/27/10 09:33:41 PM
RED~08/29/10 01:55:00 AM ~08/30/09 12:10:10 PM ~08/27/10 08:16:21 PM ~
+09/01/10 12:12:12 AM
INT~07/04/10 03:21:15 AM ~07/08/10 04:17:33 PM ~06/30/10 04:22:11 AM ~
+06/28/10 10:11:01 PM
PTRED~06/19/10 09:19:55 PM ~04/25/10 07:39:22 PM ~09/16/10 10:34:24 AM
+ ~07/22/10 06:19:38 PM
RED~04/29/10 12:10:59 AM ~04/20/10 02:13:33 AM ~07/17/10 01:00:05 PM ~
+09/01/10 11:10:15 PM
INT~05/23/10 11:11:11 PM ~01/08/10 10:45:12 PM ~05/15/09 03:29:37 AM ~
+05/18/09 12:59:59 PM
Produces: c:\test>junk51
EVENT JIM BOB SAM JACK
PTRED 4 3 1 2
RED 3 1 2 4
INT 3 4 2 1
PTRED 2 1 4 3
RED 2 1 3 4
INT 4 3 1 2
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
|