我想转置和分组我的数据:数据形状为:
APOC2 GO:0006629
APOC2 GO:0006869
APOC2 GO:0008047
APOC2 GO:0042627
APOC2 GO:0043085
CRYAB GO:0005212
SERPINA1 GO:0005615
DMD GO:0001954
DMD GO:0002162
DMD GO:0003779
DMD GO:0005200
DMD GO:0005886
但是我需要以这种简单的制表符分隔格式的数据:(即$ 1中的记录被分组使得它出现一次,并且其所有GO值(存在于输入文件的$ 2中)应该在它前面同一行)。就像上面记录的输出一样:
APOC2 GO:0006629 GO:0006869 GO:0008047 GO:0042627 GO:0043085
CRYAB GO:0005212
SERPINA1 GO:0005615
DMD GO:0001954 GO:0002162 GO:0003779 GO:0005200 GO:0005886
此论坛的questions/17853218
中提供了解决方案,但我的数据文件很大,以至于MS Excel无法处理。如何在Linux或R程序中执行相同的任务。
感谢。
答案 0 :(得分:2)
awk '$1 == key { data = data "\t" $2; next; } { print key "\t" data; key = $1; data = $2; } END { print key "\t" data }' awkdata.txt