加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

在Perl中,我如何按值的频率排序?

发布时间:2020-12-15 21:48:10 所属栏目:大数据 来源:网络整理
导读:我正在尝试创建一个程序来计算数据文件列中出现的不同值.所以,如果列的可能值是A,B,C,那就像是这样的.输出类似于 A 456B 234C 344 通过做这样的事情,我已经能够轻松获得A,B和C的运行计数 my %count; for my $f (@ffile) { open F,$f || die "Cannot open $f:
我正在尝试创建一个程序来计算数据文件列中出现的不同值.所以,如果列的可能值是A,B,C,那就像是这样的.输出类似于
A   456
B   234
C   344

通过做这样的事情,我已经能够轻松获得A,B和C的运行计数

my %count; 
for my $f (@ffile) {

    open F,$f || die "Cannot open $f: $!";

    while (<F>) {
       chomp;
       my @U = split / /;

       $count{$U[2]}++; 
    }

}
   foreach my $w (sort keys %count) {
         printf $wt$count{$w};
     }

例如,我在计算给定路径中的文件的第二列.

如何通过计数而不是键(或值A,C)对printf的输出进行排序 –

A   456
C   344
B   234

解决方法

for my $w (sort {$count{$b} <=> $count{$a}} keys %count) {
    print "$wt$count{$w}n";
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读