I want to take an ID �sade� , then take its value3 which is 23 and divide it with sum of value3 (23+66=89) like 23/89=0.258. then multiply it with value1 and value2 and then sum it.
For sade:
res=23/89
L1[ID]=L1[ID]+(res * 0.21)
L2[ID]=L2[ID]+(res * 0.45)
Now for the second �sade� record
res=66/89
L1[ID]=L1[ID]+(res * 0.67)
L2[ID]=L2[ID]+(res * 0.49)
Similar calculations for other IDs (jude,foly) as well.
Thank you so much for your help.
Regards,
Ubee
ripat! thanks for the correction.I was in hurry.
For each of the ID I want the following output:
L1[sade]=(resi * 0.21)+ (resj * 0.67) where resi =23/89 and resj =66/89
L2[sade]=(resi * 0.45)+ (resj * 0.49)
L1[foly]=( resi * 0.31)+ (resj * 0.30) where resi =43/99 and resj =56/99
L2[foly]=( resi * 0.34)+ (resj * 0.20)
L1[jude]=( resi * 0.40)+ (resj * 0.53) where resi =63/97 and resj =34/97
L2[jude]=( resi * 0.11)+ (resj * 0.32)
I hope you got the logic.
Thanks a lot.
Regards,
Ubee
---------- Post updated at 04:09 PM ---------- Previous update was at 03:23 PM ----------
cfajohnson !
In this code you didn't consider the value of "res" which is for "sade, res=23/89 and 66/89". Similarly for jude and foly. Please check my last message. I hope you will get my point.
Thank you.
my %hash;
open FH,"<a";
while(<FH>){
chomp;
my @tmp=split;
push @{$hash{$tmp[0]}->{val}}, $_;
$hash{$tmp[0]}->{sum}+=$tmp[3];
}
close FH;
foreach my $key(keys %hash){
my @tmp=@{$hash{$key}->{val}};
for(my $i=0;$i<=$#tmp;$i++){
my @t=split(" ",$tmp[$i]);
print $hash{$key}->{sum};
print $tmp[$i]," ",$t[1]*$t[3]/$hash{$key}->{sum}," ",$t[2]*$t[3]/$hash{$key}->{sum},"\n";
}
}