Re: how to implement this with perl



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]...
.



Relevant Pages

  • how to implement this with perl
    ... I have two files,one is label file,another is thickness file, they are one to one correspondence, for example: ... Now I want to calculate the sum and mean thickness of the same labeled, ... The Key Lab of Complex Systems and Intelligence Science, ...
    (perl.beginners)
  • Re: how to implement this with perl
    ... I have two files,one is label file,another is thickness file, they are ... array or, if there is a fixed number of spaces between records, you ... (See perldoc perlvar) ...
    (perl.beginners)
  • Re: Want click "+" like in Explorer and have Excel show hidden list, click "-" and hide list
    ... > Please keep all correspondence within the Group, ... Thanks for the fast replies. ... >> Excel also places the + one row below the actual label. ...
    (microsoft.public.excel)
  • Re: Use a label in a FooterTemplate control? Surely, there must be a way...
    ... If Visual Studio didn't add your Label to this list for you, ... Something else I want to point out to you is that your quotes are mismatched ... simply SUM up the $$ amounts from all the records in the repeater. ... So I tried to place a Label control in the footer and fill the Text of the ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: label control wont update
    ... >I have a main form with a tab strip control containing 3 tabbed pages. ... >Each tabbed page contains a subform. ... Each tabbed page contains label controls. ... >functions used to sum the values in particular rows of the data sheet. ...
    (microsoft.public.access.formscoding)