免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 13335 | 回复: 8
打印 上一主题 下一主题

挑战 文本文件行列转置如何实现 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-09 08:44 |只看该作者 |倒序浏览
由逗号分隔的不定长度的文本文件, 现要实现行列转置, 即由
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,  ,    ,
在下学习PERL尚未入门, 请各位高手指点迷津. 最好把实现的主要部分脚本贴出来, 不胜感激!!

论坛徽章:
0
2 [报告]
发表于 2009-03-09 09:32 |只看该作者
这是作业么? 下次自己写吧

  1. my @matrix;
  2. my $max_len = 0;
  3. while(<DATA>){
  4.   chomp;
  5.   s/,$//g;
  6.   my @fields = split /,/, $_;
  7.   my $len = @fields;
  8.   $max_len = $max_len > $len ? $max_len : $len;
  9.   push @matrix, [@fields];
  10. }
  11. for my $col (0..$max_len - 1){
  12.   for my $line (@matrix){
  13.     print $line->[$col] || ' ', ',';
  14.   }
  15.   print "\n";
  16. }
  17. __DATA__
  18. 1,2,3,4,5,6,
  19. 7,8,9,
  20. 10,11,12,13,

复制代码

论坛徽章:
0
3 [报告]
发表于 2009-03-09 09:52 |只看该作者

回复 #2 DQP 的帖子

谢谢DQP!  好用, 在下正在研读中, 有不明处再请教, 再次感谢!!!

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
4 [报告]
发表于 2009-03-09 10:38 |只看该作者
原帖由 DQP 于 2009-3-9 09:32 发表
这是作业么?  

显然的。

论坛徽章:
0
5 [报告]
发表于 2009-03-09 23:04 |只看该作者

回复 #2 DQP 的帖子

print $line->[$col] || ' ', ',';

这个地方用的真是好呀, 第一个逗号是什么意思呢,从语法能猜出来,但是否解释下

论坛徽章:
0
6 [报告]
发表于 2009-03-09 23:21 |只看该作者
原帖由 sunkez 于 2009-3-9 23:04 发表
print $line->[$col] || ' ', ',';

这个地方用的真是好呀, 第一个逗号是什么意思呢,从语法能猜出来,但是否解释下


是两个参数间的分隔符啊
呵呵 逗号多了容易眼花 :p

论坛徽章:
0
7 [报告]
发表于 2014-04-09 09:00 |只看该作者
$max_len = $max_len > $len ? $max_len : $len;
这一段是什么意思

求职 : 软件工程师
论坛徽章:
3
程序设计版块每日发帖之星
日期:2015-10-07 06:20:00程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2016-05-05 06:20:00
8 [报告]
发表于 2014-04-09 18:47 |只看该作者
在 EXCEL 里,复制,选择性粘贴,转置。

论坛徽章:
0
9 [报告]
发表于 2014-04-09 22:57 |只看该作者
本帖最后由 gaorongchao 于 2014-04-09 22:57 编辑

在R里,t(data)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP