Sponsored Content
Full Discussion: Venn Data Maker
Homework and Emergencies Emergency UNIX and Linux Support Venn Data Maker Post 302979843 by RudiC on Friday 19th of August 2016 01:36:34 PM
Old 08-19-2016
How about
Code:
awk '
NR==1   {print "Name", $0
         next
        }
        {for (i=1; i<=3; i++)   {T[$i]
                                 R[$i,i] = 1
                                }
        }
END     {delete T[""]
         for (t in T)   {print t, R[t,1]+0, R[t,2]+0, R[t,3]+0
                         TMP = R[t,1] * 100 + R[t,2] * 10 + R[t,3]
                         if (TMP == 111) Set123++
                         if (TMP == 110) Set12++
                         if (TMP == 101) Set13++
                         if (TMP == 11)  Set23++
                         if (TMP == 100) Set1++
                         if (TMP == 10)  Set2++
                         if (TMP == 1)   Set3++
                        }
         print "Set1_unique="   0+Set1
         print "SDet2_unique="  0+Set2
         print "Set3_unique="   0+Set3
         print "Set12_common="  0+Set12
         print "Set13_common="  0+Set13
         print "Set23_common="  0+Set23
         print "Set123_common=" 0+Set123
        }
' FS=, OFS=, file
Name,Set1,Set2,Set3
g1,1,1,1
g2,1,1,0
g3,0,0,1
g4,1,0,0
g5,0,1,1
g6,1,0,0
g7,0,1,0
g8,0,0,1
Set1_unique=2
SDet2_unique=1
Set3_unique=2
Set12_common=1
Set13_common=0
Set23_common=1
Set123_common=1

This User Gave Thanks to RudiC For This Post:
 

2 More Discussions You Might Find Interesting

1. Programming

maker

how can i remake a program to crash a harddrive using unix:rolleyes: (2 Replies)
Discussion started by: flomper
2 Replies

2. Shell Programming and Scripting

Venn diagram results using awk

Hi, I have the following files 1.txt a 10 b 11 c 12 d 13 e 14 f 15 g 16 h 17 i 18 j 19 k 20 2.txt a 21 b 22 (15 Replies)
Discussion started by: jacobs.smith
15 Replies
Sort::Key::Maker(3pm)					User Contributed Perl Documentation				     Sort::Key::Maker(3pm)

NAME
Sort::Key::Maker - multikey sorter creator SYNOPSYS
# create a function that sorts strings by length: use Sort::Key::Maker sort_by_length => sub { length $_}, qw(integer); # create a multikey sort function; # first key is integer sorted in descending order, # second key is a string in default (ascending) order: use Sort::Key::Maker ri_s_keysort => qw(-integer string); # some sample data... my @foo = qw(foo bar t too tood mama); # and now, use the sorter functions previously made: # get the values on @foo sorted by length: my @sorted = sort_by_length @foo; # sort @foo inplace by its length and then by its value: ri_s_keysort_inplace { length $_, $_ } @foo; DESCRIPTION
Sort::Key::Maker is a pragmatic module that provides an easy to use interface to Sort::Key multikey sorting functionality. It creates multikey sorting functions on the fly for any key type combination and exports them to the caller package. The key types natively accepted are: string, str, locale, loc, integer, int, unsigned_integer, uint, number, num and support for other types can be added via Sort::Key::Register (or also via Sort::Key::register_type()). USAGE use Sort::Key::Maker foo_sort => @keys; exports two subroutines to the caller package: "foo_sort (&@)" and "foo_sort_inplace (&@)". Those two subroutines require a sub reference as their first argument and then respectively, the list to be sorted or an array. For instance: use Sort::Key::Maker bar_sort => qw(int int str); @bar=qw(doo tomo 45s tio); @sorted = bar_sort { unpack "CCs", $_ } @bar; # or sorting @bar inplace bar_sort_inplace { unpack "CCs", $_ } @bar; use Sort::Key::Maker foo_sort => &genmultikey, @keys; when the first argument after the sorter name is a reference to a subroutine it is used as the multikey extraction function. The generated sorter functions doesn't require neither accept one, i.e.: use Sort::Key::Maker sort_by_length => sub { length $_ }, 'int'; my @sorted = sort_by_length qw(foo goo h mama picasso); SEE ALSO
Sort::Key, Sort::Key::Register. Sort::Maker also available from CPAN provides similar functionality. AUTHOR
Salvador Fandin~o, <sfandino@yahoo.com> COPYRIGHT AND LICENSE
Copyright (C) 2005 by Salvador Fandin~o This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.4 or, at your option, any later version of Perl 5 you may have available. perl v5.14.2 2010-04-16 Sort::Key::Maker(3pm)
All times are GMT -4. The time now is 01:38 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy