我有以下格式的数据集:
snp,T2DG0200001,T2DG0200002,T2DG0200003,T2DG0200004
3_60162,AA,AA,AA,AA
3_61495,AA,AA,GA,GA
3_61466,GG,GG,CG,CG
真实的数据比这大得多,扩展到数百万行和大约一千列。我的最终目标是转置这个怪物并将结果输出到一个文本文件(或 CSV 文件或其他文件,无所谓)中。
我需要将数据逐个输入我的计算机,以免内存超载。我逐行读取 CSV 文件,然后将其转置,然后写入文件。然后,我循环返回并重复这些步骤,并在执行过程中附加到文本文件中。
问题当然是如果结果是原始数据文件的转置,我应该逐列而不是逐行附加文本文件。但一位朋友告诉我,这在 Perl 代码中是不可行的。我想知道我是否可以逐列读取数据。有没有类似的东西,比如我在原始代码中使用的getline
方法
while (my $row = $csv->getline ($fh)) {
可以返回列而不是行?cut
如果不需要将整个数据加载到内存中,则首选类似于 Unix命令的命令。