汇总数据框,如果目标词不存在,则插入0进行排序

时间:2019-10-30 14:32:04

标签: arrays matlab sorting matrix merge

我有一个制表符分隔的数据框,如下所示:

Sample  1
A   2
B   1
D   2
Sample  2
C   1
D   1
E   2
Sample  3
D   1
E   3
Sample  4
A   1
E   3
Sample  5
A   2
B   3
Sample  6
C   1
D   2
Sample  7
D   1
E   3
Sample  8
A   3
D   2
Sample  9
A   1
Sample  10
A   1
C   2
E   3

,我想转置它并链接字母和关联的值。如果样本不包含字母,我想插入“ 0”。

所以我想要的是修改后的数据框

Sample  A   B   C   D   E
    1   2   1   0   2   0
    2   0   0   1   1   1
    3   0   0   0   1   3
    4   1   0   0   0   3
    5   2   3   0   0   0
    6   0   0   1   2   0
    7   0   0   0   1   3
    8   3   0   0   2   0
    9   1   0   0   0   0
    10  1   0   2   0   3

我试图总结数据框架,然后将其转置。当我使用时,

awk 'NR==1{print} NR>1{a[$1]=a[$1]" "$2}END{for (i in a){print i " " a[i]}}' TEST

输出数据为

Sample  1
A  2 1 2 3 1 1
B  1 3
C  1 1 2
D  2 1 1 2 1 2
E  2 3 3 3 3
Sample  2 3 4 5 6 7 8 9 10

样本1是隔离的,样本中不包含字母时没有空格。

我希望这是有道理的。

0 个答案:

没有答案