#!/bin/bash createTableTop10() { echo "\begin{table}" echo "\begin{scriptsize}" echo "\begin{center}" echo "\begin{tabular}{|l|l|l|l|l|c|c|c|}" echo "\hline" echo "Train & Numeric & Column Pruner & Row Pruner & Learner & Ties & Wins & Losses \\\ " echo "Type & Estimation & & & & & & \\\ " echo "\hline" #This sorts based on min losses (field 4) and max wins (field 3). However, max wins is achieved using min ties (field 2). gawk 'BEGIN{FS=OFS=","} NR>1{print $1,$2,$3,$4 " \\\\"}' $1 | sort -t, -k 4 -k 2 -n | sed 's/|/ \& /g' | sed 's/,/ \& /g' | sed 's/-Median/Median/g' | sed 's/-Mean/Mean/g' | sed 's/CocominWrapper/Cocomin/g' | head -10 echo "\hline" echo "\end{tabular}" echo "\end{center}" echo "\end{scriptsize}" echo "\caption{Top 10 methods for subset $2 using $3 evaluation criterion.}" echo "\label{table:top10Subset$2-$3}" echo "\end{table}" } generateTop10() { for file in mwu_$1_* do subsetIndex=`echo "" | gawk ' BEGIN {FS="_"; OFS=","} {split (Input,results,FS);} END { if (results[3] == "coc81" && results[4] == "all") print "1"; else if (results[3] == "coc81" && results[4] == "kindmax") print "2"; else if (results[3] == "coc81" && results[4] == "kindmin") print "3"; else if (results[3] == "coc81" && results[4] == "langftn") print "4"; else if (results[3] == "coc81" && results[4] == "langmol") print "5"; else if (results[3] == "coc81" && results[4] == "modee") print "6"; else if (results[3] == "coc81" && results[4] == "modeorg") print "7"; else if (results[3] == "nasa93" && results[4] == "all") print "8"; else if (results[3] == "nasa93" && results[4] == "category" && results[5] == "avionicsmonitoring") print "9"; else if (results[3] == "nasa93" && results[4] == "category" && results[5] == "missionplanning") print "10"; else if (results[3] == "nasa93" && results[4] == "center" && results[5] == "2") print "11"; else if (results[3] == "nasa93" && results[4] == "center" && results[5] == "5") print "12"; else if (results[3] == "nasa93" && results[4] == "fg" && results[5] == "g") print "13"; else if (results[3] == "nasa93" && results[4] == "mode" && results[5] == "embedded") print "14"; else if (results[3] == "nasa93" && results[4] == "mode" && results[5] == "semidetached") print "15"; else if (results[3] == "nasa93" && results[4] == "project" && results[5] == "gro") print "16"; else if (results[3] == "nasa93" && results[4] == "project" && results[5] == "sts") print "17"; else if (results[3] == "nasa93" && results[4] == "year" && results[5] == "1975") print "18"; else if (results[3] == "nasa93" && results[4] == "year" && results[5] == "1980") print "19"; else print "0"; } ' Input=$file` [ "$subsetIndex" -lt 1 ] && continue; echo $subsetIndex; createTableTop10 $file $subsetIndex $1 > top10-Subset$subsetIndex-$1.tex done } generateTop10 "AR"; generateTop10 "MER"; generateTop10 "MRE"; createTableTop20() { echo "\begin{table}" echo "\begin{scriptsize}" echo "\begin{center}" echo "\begin{tabular}{|l|l|l|l|l|c|c|c|}" echo "\hline" echo "Train & Numeric & Column Pruner & Row Pruner & Learner & Ties & Wins & Losses \\\ " echo "Type & Estimation & & & & & & \\\ " echo "\hline" #This sorts based on min losses (field 4) and max wins (field 3). However, max wins is achieved using min ties (field 2). gawk 'BEGIN{FS=OFS=","} NR>1{print $1,$2,$3,$4 " \\\\"}' $1 | sort -t, -k 4 -k 2 -n | sed 's/|/ \& /g' | sed 's/,/ \& /g' | sed 's/-Median/Median/g' | sed 's/-Mean/Mean/g' | sed 's/CocominWrapper/Cocomin/g' | head -20 echo "\hline" echo "\end{tabular}" echo "\end{center}" echo "\end{scriptsize}" echo "\caption{Top 20 methods for \$$2\$ using $3 evaluation criterion.}" echo "\label{table:top20Dataset$2-$3}" echo "\end{table}" } generateTop20() { echo "" > temp_$1"_"$3; for file in mwu_$3"_"$1* do gawk 'BEGIN{FS = OFS = ","} NR>1{print $0}' $file >> temp_$1"_"$3; done gawk 'BEGIN{FS=OFS=","}NR>1{keys[$1]=1;ties[$1]+=$2;wins[$1]+=$3;losses[$1]+=$4;}END{for(key in keys) print key,ties[key],wins[key],losses[key];}' temp_$1"_"$3 > results_$1"_"$3; createTableTop20 results_$1"_"$3 $2 $3 > top20-$1-$3.tex rm temp_$1"_"$3 results_$1"_"$3; } generateTop20 "coc81" "COC81" "AR"; generateTop20 "coc81" "COC81" "MER"; generateTop20 "coc81" "COC81" "MRE"; generateTop20 "nasa93" "NASA93" "AR"; generateTop20 "nasa93" "NASA93" "MER"; generateTop20 "nasa93" "NASA93" "MRE";