我基本上想要做的就是选择一个这样的表,其中顶行包含列名:
A B B B
a 9 8 9
a 6 5 3
b 4 4 5
b 8 3 4
并合并具有相同名称的列,同时保留相应的行名称(包含在第一列中),如下所示:
A B
a 9
a 8
a 9
a 6
a 5
a 3
b 4
b 4
b 5
b 8
b 3
b 4
任何帮助都将不胜感激。
答案 0 :(得分:1)
你要做的是'融化'一张桌子。我在R中使用了一个库,但在Perl中没有。有一个名为Data::Table
的Perl模块,它具有多维列表的融合功能。
答案 1 :(得分:0)
您可以将初始表格(T1)可视化为:
0 1 2 3
A B B B
a 9 8 9
...
你有列0 .. 3.每次打印转换表(T2)的行时,你将打印第0列。所以T1的第1行(“顶行”)将是以下第1行T2:
0 1
T1的第2行将是以下三行T2:
0 1
0 2
0 3
T1的每一行,从第2行到最后一行,将转换为三行T2 - 以上图所示的模式。
Psudocode:
0
和1
。转到第1步。0
和1
,元素0
和2
,元素0
和3
。< / LI>
使用DATA
读取文件或while
时,如何获取当前行号? Perl使用$.
来存储该信息。因此,如果$. == 1
,则为第1行。
希望这有帮助!