-1
我有一組文件,其中以下信息:計算意味着在分組行
ID Score Other
ABR 0.98 NBNMSB
BCG 0.76 NBNMSB
CVD 0.6 NBNMSB
BCG 0.9 VSCVA
CVD 0.56 VSCVA
ABR 0.9 VSCVA
CVD 0.7 BAVSC
BCG 0.4 BAVSC
ABR 0.5 BAVSC
ABR 0.8 NBNMSB
BCG 0.6 NBNMSB
CVD 0.3 NBNMSB
BCG 0.7 VSCVA
CVD 0.0 VSCVA
ABR 0.1 VSCVA
CVD 0.5 BAVSC
BCG 0.8 BAVSC
ABR 1.0 BAVSC
我想計算跨第一欄分數即ID最大爲每個第三列的這樣的結果將由第一列和得分的最大值被分組爲將第三列的計算如下:
文件ABR.txt
ABR 0.98 NBNMSB
ABR 0.9 VSCVA
ABR 1.0 BAVSC
文件BCG.txt
BCG 0.76 NBNMSB
BCG 0.9 VSCVA
BCG 0.8 BAVSC
和同爲CVD exceot這些文件是真的大,多個這樣的文件,目前我使用下面的代碼:
同時讀取ID;做
while read line; do
block=$(echo $line | awk '{print $1}')
max_of_score=$(grep $block Negative/fileofinterest*.ext | grep $ID | awk 'BEGIN {max = 0} {if ($2>max) max=$2} END {print max}')
echo $block $max_of_score >> $ID"_max.txt"
done < fileOfcolumn3values.txt
#contains all the possible values of column 3 (in this case NBNMSB, VSCVA, BAVSC)
done < fileOfIdscolumn1.txt
#contains all possible values of column 1 (in this case ABR, BCG, CVD)
我想找到可能比上述算法更快運行的代碼,TIA
你的問題還不清楚。你說你有一組包含一些信息的文件,其中包含一個例子。然後列出2個文件。這些示例輸入或預期的輸出文件?你發佈的第一組數據有什麼相關性?如果他們是輸入,輸出是什麼?這聽起來像你需要一些東西來處理多個文件,所以請發佈3個小樣本輸入文件以及給定這3個輸入文件的預期輸出。如果預期的輸出是多個文件,然後說明並顯示。 –