File1 有三列。 Column1 有组,column2 有属于特定组的代谢途径的名称,column3 有每个途径的一些值:
group1 pathway1 0.664
group1 pathway6 1
group1 pathway2 0.056
group2 pathway2 0.321
group2 pathway3 0.771
File2 包含所有路径的列表:
pathway1
pathway2
pathway3
pathway4
pathway5
pathway6
输出:如何获得如下所示的矩阵表:
group1 group2
pathway1 0.664
pathway2 0.056 0.321
pathway3 0.771
pathway4
pathway5
pathway6 1
最佳答案
使用awk
:
awk 'BEGIN { print "\t group1\tgroup2";b[1];b[2] }
FNR==NR{ if ( $1 == "group1" ) a[$2"@"1]=$3;
if ( $1 == "group2" ) a[$2"@"2]=$3 }
FNR!=NR { printf $1" ";
for ( j in b) {
if ( $1"@"j in a) printf a[$1"@"j]"\t" ;
else printf "\t"};print "" }' File1 File2
输出:
group1 group2
pathway1 0.664
pathway2 0.056 0.321
pathway3 0.771
pathway4
pathway5
pathway6 1
关于linux - 如何组成矩阵表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42722882/