perl对长度不一文本的行列进行置换的实现代码
有时遇到各行或各列的长度不一致时就麻烦了,虽然可以在R里面把文件按最长的行(列)填充,但是不便,所以想起用perl去实现一个。
由逗号分隔的不定长度的文本文件, 现要实现行列转置, 即由
代码如下:
1,2,3,4,5,6, 7,8,9, 10,11,12,13, 转换为: 1,7,10, 2,8,11, 3,9,12, 4, ,13, 5, , , 6, , ,
以下是完整的代码,供大家参考。
代码如下:
#!/usr/bin/perl -w my @matrix; my $max_len = 0; while(<DATA>){ chomp; s/,$//g; my @fields = split /,/, $_; my $len = @fields; $max_len = $max_len > $len ? $max_len : $len; push @matrix, [@fields]; } for my $col (0..$max_len - 1){ for my $line (@matrix){ print $line->[$col] || ' ', ','; } print "\n"; } __DATA__ 1,2,3,4,5,6, 7,8,9, 10,11,12,13,
准备学习下,自己动手实现一遍,最好是做成模板,随调随用。
相关推荐
边城客栈学无止境 2020-07-05
Walter的学习笔记 2020-07-04
A宇 2020-06-14
边城客栈学无止境 2020-06-10
邓博学习笔记 2020-06-03
davidliu00 2020-05-26
ShiShuo 2020-05-16
Aggressivesnail 2020-05-10
ShiShuo 2020-04-26
hanxingwang00 2020-04-22
davidliu00 2020-03-06
ShiShuo 2020-03-06
ShiShuo 2020-03-05
Aggressivesnail 2020-02-28
aaLiweipeng 2020-02-01
amberom 2020-01-16
Walter的学习笔记 2020-01-06