Re: how to implement this with perl
- From: yitzle@xxxxxxxxxxxxxxxxxxxxx (Yitzle)
- Date: Thu, 26 Jun 2008 10:42:41 -0400
On Thu, Jun 26, 2008 at 8:18 AM, vikingy <vikingy@xxxxxxxxx> wrote:
Hi all,
I have two files,one is label file,another is thickness file, they are one to one correspondence, for example:
the label file is : 2 2 3 2 1 3 4 5 2 5 1 4 ......
the thickness file is: 0.3 0.8 0.2 0.1 2.4 0.9 3.2 0.2 0.1 0.3 2.1 2.3 ......
Now I want to calculate the sum and mean thickness of the same labeled, just like this:
label 1 : 2.4
label 2 : (0.3+0.8+0.1 +0.1)/4
label 3 : (0.2+2.4)/2
label 4 : (3.2+2.3)/2
label 5 : (0.2+0.3)/2
.......
and then there is also a index [3 4] to select the label, so in the end ,I want to get the sum and mean of (0.2+2.4)/2, (3.2+2.3)/2.
I'm a beginner to perl, and don't know how to implement this with perl,could you give me some suggestion? thanks in advance!
bin lv
For the first part of your question:
If the info in the file is all on one line, you can either (1) read in
the entire line and use the split() function to split it up into an
array or, if there is a fixed number of spaces between records, you
can set
local $/ = " ";
(See perldoc perlvar)
For a large amount of data, the second method would be faster.
You can then use a hash to store the information for each label.
__CODE__
my %data;
open my $thicknessFH, "< thickness.txt" or die;
open my $labelFH, "< labels.txt" or die;
local $/ = " ";
# Process the files
while ( my $label = <$labelFH> ) {
my $thickness = <$thicknessFH>;
$data{ $label }{ 'count' }++;
$data{ $label }{ 'thickness' } += $thickness;
}
# Display results
for my $label ( sort keys %data ) {
local $\ = "\n"; # Auto-append newlines to prints
print "Label $label: " . ( $data{ $label }{ 'thickness' } / $data{
$label }{ 'count' };
}
__END__
I don't fully understand how you'd like to deal with indexes like [3 4]...
.
- Follow-Ups:
- Re: how to implement this with perl
- From: Jialin Li
- Re: how to implement this with perl
- References:
- how to implement this with perl
- From: Vikingy
- how to implement this with perl
- Prev by Date: not able to install Digest::SHA
- Next by Date: Re: how to implement this with perl
- Previous by thread: how to implement this with perl
- Next by thread: Re: how to implement this with perl
- Index(es):
Relevant Pages
|