Sponsored Content
Full Discussion: Crosstab
Top Forums UNIX for Dummies Questions & Answers Crosstab Post 302933739 by radius on Monday 2nd of February 2015 06:23:33 AM
Old 02-02-2015
Crosstab

Good day everyone...

I need help to do crosstab over my file input

input
Code:
Nation|Country|Capital|Name|Notes|Final|1/1/2014|1/2/2014|1/3/2014|1/4/2014|1/5/2014|1/6/2014|12/25/2014|12/26/2014|12/27/2014|12/28/2014|12/29/2014|12/30/2014|12/31/2014|12/26/2014
India|Calcuta|New Delhi|Anja|No|Yes|0.00802523454488674|0.00718870309622937|0.00668183463961164|0.00708734929353649|0.00711947948811522|0.00672216051430008|0.00829922511113053|0.00865326433461789|0.0095347317725896|0.00992062885494416|0.0101082550618103|0.00965226637116291|0.0105377036818121|0.00865326433461789
Canada|Ottawa|Ottawa|Cedric|No|No|0.00694463160840849|0.00662456432199697|0.00681321803993624|0.00703480755373019|0.00633655907249729|0.00652425523108359|0.00717226883882143|0.00788301811339197|0.00934995141776595|0.00834943553340919|0.00813165511472526|0.00868150805231289|0.00801825745761948|0.00788301811339197
Pakistan|Islamabad|Islamabad|Ali|Yes|No|0.0144652010887942|0.0135290767633953|0.0132815839841639|0.0130410801591366|0.0131517257513035|0.0135129636205375|0.0129305981388591|0.0134733068967585|0.0157650133566409|0.0142009335286898|0.0153755589592332|0.0161931561124267|0.0189088445196573|0.0134733068967585

I need to do crosstab, so my expected output is:

Code:
India|Calcuta|New Delhi|Anja|No|Yes|1/1/2014|0.00802523454488674
Canada|Ottawa|Ottawa|Cedric|No|No|1/1/2014|0.00694463160840849
Pakistan|Islamabad|Islamabad|Ali|Yes|No|1/1/2014|0.0144652010887942
India|Calcuta|New Delhi|Anja|No|Yes|1/2/2014|0.00718870309622937
Canada|Ottawa|Ottawa|Cedric|No|No|1/2/2014|0.00662456432199697
Pakistan|Islamabad|Islamabad|Ali|Yes|No|1/2/2014|0.0135290767633953
India|Calcuta|New Delhi|Anja|No|Yes|1/3/2014|0.00668183463961164
Canada|Ottawa|Ottawa|Cedric|No|No|1/3/2014|0.00681321803993624
Pakistan|Islamabad|Islamabad|Ali|Yes|No|1/3/2014|0.0132815839841639
India|Calcuta|New Delhi|Anja|No|Yes|1/4/2014|0.00708734929353649
Canada|Ottawa|Ottawa|Cedric|No|No|1/4/2014|0.00703480755373019
Pakistan|Islamabad|Islamabad|Ali|Yes|No|1/4/2014|0.0130410801591366
India|Calcuta|New Delhi|Anja|No|Yes|1/5/2014|0.00711947948811522
Canada|Ottawa|Ottawa|Cedric|No|No|1/5/2014|0.00633655907249729
Pakistan|Islamabad|Islamabad|Ali|Yes|No|1/5/2014|0.0131517257513035
India|Calcuta|New Delhi|Anja|No|Yes|1/6/2014|0.00672216051430008
Canada|Ottawa|Ottawa|Cedric|No|No|1/6/2014|0.00652425523108359
Pakistan|Islamabad|Islamabad|Ali|Yes|No|1/6/2014|0.0135129636205375
India|Calcuta|New Delhi|Anja|No|Yes|12/25/2014|0.00829922511113053
Canada|Ottawa|Ottawa|Cedric|No|No|12/25/2014|0.00717226883882143
Pakistan|Islamabad|Islamabad|Ali|Yes|No|12/25/2014|0.0129305981388591
India|Calcuta|New Delhi|Anja|No|Yes|12/26/2014|0.00865326433461789
Canada|Ottawa|Ottawa|Cedric|No|No|12/26/2014|0.00788301811339197
Pakistan|Islamabad|Islamabad|Ali|Yes|No|12/26/2014|0.0134733068967585
India|Calcuta|New Delhi|Anja|No|Yes|12/27/2014|0.0095347317725896
Canada|Ottawa|Ottawa|Cedric|No|No|12/27/2014|0.00934995141776595
Pakistan|Islamabad|Islamabad|Ali|Yes|No|12/27/2014|0.0157650133566409
India|Calcuta|New Delhi|Anja|No|Yes|12/28/2014|0.00992062885494416
Canada|Ottawa|Ottawa|Cedric|No|No|12/28/2014|0.00834943553340919
Pakistan|Islamabad|Islamabad|Ali|Yes|No|12/28/2014|0.0142009335286898
India|Calcuta|New Delhi|Anja|No|Yes|12/29/2014|0.0101082550618103
Canada|Ottawa|Ottawa|Cedric|No|No|12/29/2014|0.00813165511472526
Pakistan|Islamabad|Islamabad|Ali|Yes|No|12/29/2014|0.0153755589592332
India|Calcuta|New Delhi|Anja|No|Yes|12/30/2014|0.00965226637116291
Canada|Ottawa|Ottawa|Cedric|No|No|12/30/2014|0.00868150805231289
Pakistan|Islamabad|Islamabad|Ali|Yes|No|12/30/2014|0.0161931561124267
India|Calcuta|New Delhi|Anja|No|Yes|12/31/2014|0.0105377036818121
Canada|Ottawa|Ottawa|Cedric|No|No|12/31/2014|0.00801825745761948
Pakistan|Islamabad|Islamabad|Ali|Yes|No|12/31/2014|0.0189088445196573


I did this

Code:
awk 'BEGIN {FS = "|t" ;}
{
for ( NR >1 && x=2 ; x<=NF ; x++)
{
for (NR == 1 && a=3 ; a<=NF ; a++)
{
M[a]=$a
}
BC = $1
print BC , M[x], $x
}
}
' input

 

We Also Found This Discussion For You

1. Shell Programming and Scripting

Crosstab to List table using awk Function

What I am trying to achieve is turning crosstab into a normal table e.g. convert following table Jan Feb Mar Apr May Jun Australia 1 2 3 4 5 6 USA 7 8 9 10 11 12 China 13 14 15 16 17 18 to Australia Jan 1 Australia Feb 2 Australia Mar 3 ... (2 Replies)
Discussion started by: asdban
2 Replies
All times are GMT -4. The time now is 05:05 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy