in reply to Doing pair-exclusivity analysis and building a matrix

This seemed like a interesting mental exercise. Here's my take:

#!/usr/bin/env perl use 5.010; use strict; use warnings; my (%incl, %excl); while (<DATA>) { my ($id, $loc_list) = split; my @locs = split /,/ => $loc_list; @{$incl{$id}}{@locs} = (1) x @locs; } for my $in (keys %incl) { for my $ex (keys %incl) { $excl{$in}{$ex} = [ grep { ! $incl{$ex}{$_} } keys %{$incl{$in +}} ]; } } say join qq{\t} => q{ID}, sort(keys %incl); for my $id (sort keys %incl) { say join qq{\t} => $id, map { scalar @{$excl{$id}{$_}} } sort keys + %incl; } __DATA__ Name1 USA,Canada,Yemen Name2 Canada,Portugal,India Name3 China,HongKong,Canada Name4 London,Amsterdam,Ireland,USA Name5 India,USA,Canada

Output:

ID Name1 Name2 Name3 Name4 Name5 Name1 0 2 2 2 1 Name2 2 0 2 3 1 Name3 2 2 0 3 2 Name4 3 4 4 0 3 Name5 1 1 2 2 0

-- Ken

Replies are listed 'Best First'.
Re^2: Doing pair-exclusivity analysis and building a matrix
by angerusso (Novice) on Mar 28, 2012 at 17:58 UTC
    Hey everyone, Srsly, thanks SO MUCH!!