Perl:查找特定列的总和和平均值
我想计算windows上Perl中每一行的所有itemsX(其中X是一个数字)的平均值 我有以下格式的文件:Perl:查找特定列的总和和平均值,perl,Perl,我想计算windows上Perl中每一行的所有itemsX(其中X是一个数字)的平均值 我有以下格式的文件: id1 item1 cart1 id2 item2 cart2 id3 item3 cart3 0 11 34 1 22 44 2 44 44 1 44 44 55 66 34 45 55 33 要查找项目块的总和及其平均值。 有什么帮助吗 以下是我迄今为止所尝试的: use strict; use w
id1 item1 cart1 id2 item2 cart2 id3 item3 cart3
0 11 34 1 22 44 2 44 44
1 44 44 55 66 34 45 55 33
要查找项目块的总和及其平均值。
有什么帮助吗
以下是我迄今为止所尝试的:
use strict;
use warnings;
open my $fh, '<', "files.txt" or die $!;
my $total = 0;
my $count = 0;
while (<$fh>) {
my ($item1, $item2, ) = split;
$total += $numbers;
$count += 1;
}
使用严格;
使用警告;
打开my$fh,“对于输入的第一行(列名),我们存储以item开头的列的索引。对于后续的每一行,我们对从@index
派生的数组切片引用的列求和
use strict;
use warnings;
use List::Util qw(sum);
my @indices;
while (<DATA>) {
my @fields = split;
if ($. == 1) {
@indices = grep { $fields[$_] =~ /^item/ } 0 .. $#fields;
next;
}
my $sum = sum(@fields[@indices]);
my $avg = $sum / scalar(@indices);
printf("Row %d stats: sum=%d, avg=%.2f\n", $., $sum, $avg);
}
__DATA__
id1 item1 cart1 id2 item2 cart2 id3 item3 cart3
0 11 34 1 22 44 2 44 44
1 44 44 55 66 34 45 55 33
我是初学者,我尝试过严格的使用;使用警告;打开我的$fh,'然后是什么问题呢?非常感谢我尝试过,但问题是我们只需要对项目列求和并求平均值,但它会占用文件的每一列代码中的$number是什么?mariakhalid,如果你觉得这是最好的答案,那么你应该接受它,而不是发表“谢谢”的评论。
Row 2 stats: sum=77, avg=25.67
Row 3 stats: sum=165, avg=55.00