12-04-2012
Once they are sorted you can read them line by line: as they are sorted already you can rely on all the identical key values coming one after the other. The underlying algorithm is a widely used and basic one and called: single group change and it works like this:
You have to remember your last key value. If the key value you read now is identical you are within the same group, so add the other values to sums or whatever you do within your groups.
If the key you read is not identical with the previous one you have to first end your last group - calculate any averages from the sums, etc. - then start with a new group.
Two things to take into account: when you read the first line your group changes (from "" to some value) but you should suppress group end-processing at this point, because otherwise you get a "ghost-group" with an empty key and all values zero/nil. Second, your last line will have to trigger a group change too, because otherwise the last group would not be processed.
I hope this helps.
bakunin
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
If the 4th column has - sign then the names in 3rd column has to change to some user defined names (as shown in output).
Thanx
input1
1 a aaaaa +
2 b bbbbb +
3 c ccccc +
4 d ddddd +
5 e eeeee +
6 f xxxxx +
8 h hhhhh +... (8 Replies)
Discussion started by: repinementer
8 Replies
2. Shell Programming and Scripting
Hi Friends,
In continuation to my earlier post
https://www.unix.com/shell-programming-scripting/99166-script-find-average-given-column-also-specified-number-rows.html
I am extending my problem as follows.
Input:
Column1 Column2
MAS 1
MAS 4 ... (2 Replies)
Discussion started by: ks_reddy
2 Replies
3. Shell Programming and Scripting
Hi,
I'm new to shell programming, can anyone help me on this? I want to do following operations -
1. Average salary for each country
2. Total salary for each city
and data that looks like -
salary country city
10000 zzz BN
25000 zzz BN
30000 zzz BN
10000 yyy ZN
15000 yyy ZN
... (3 Replies)
Discussion started by: shell123
3 Replies
4. Shell Programming and Scripting
Hi,
I have nine files looking similar to file1 & file2 below.
File1:
1 ABCA1
1 ABCC8
1 ABR:N
1 ACACB
1 ACAP2
1 ACOT1
1 ACSBG
1 ACTR1
1 ACTRT
1 ADAMT
1 AEN:N
1 AKAP1File2:
1 A4GAL
1 ACTBL
1 ACTL7 (4 Replies)
Discussion started by: seqbiologist
4 Replies
5. Shell Programming and Scripting
Input file 1:
A1BG
A1BG
A1BG
A1CF
A1CF
BCAS
BCAS
A2LD1
A2M
A2M
HAT
.
.
Input file 2:
A1BG All
A1CF TEMP (5 Replies)
Discussion started by: perl_beginner
5 Replies
6. Homework & Coursework Questions
Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!
1. The problem statement, all variables and given/known data:
I am trying to complete a script which will allow me to find:
a) reads a value from the keyboard. (ask the... (4 Replies)
Discussion started by: dstewie
4 Replies
7. Shell Programming and Scripting
Hi i have data with two columns like below.
I want to find average of column values like if the value in column 2 is between 0-250000 the average of column 1 is some xx and average of column2 is ww then if value is 250001-5000000 average of column 1 is yy and average of column 2 is zz.
And my... (5 Replies)
Discussion started by: bhargavpbk88
5 Replies
8. Shell Programming and Scripting
Hi,
I would like to calculate the average of column 'y' based on the value of column 'pos'.
For example, here is file1
id pos y c
11 1 220 aa
11 4333 207 f
11 5333 112 ee
11 11116 305 e
11 11117 310 r
11 22228 781 gg
11 ... (2 Replies)
Discussion started by: jackken007
2 Replies
9. UNIX for Dummies Questions & Answers
HI,
I have a long file which looks like
"1xxx_0_1" "1xxx" 500 5 "ABC*3-DEF*3-LL"
"2yyy_0_1" "2yyy" 600 10 "ABC*2-DEF*2-LL"
"3ddd_0_1" "3ddd" 150 52 "ABC*3-DEF*3-LL"
"1xxx_0_1" "1xxx" 500 5 "ABC*3-DEF*3-LL"
"2yyy_0_1" "2yyy" 600 10 "ABC*2-DEF*2-LL"
... (3 Replies)
Discussion started by: XXLMMN
3 Replies
10. Shell Programming and Scripting
Hi,
My input file
Gene1 1
Gene1 2
Gene1 3
Gene1 0
Gene2 0
Gene2 0
Gene2 4
Gene2 8
Gene3 9
Gene3 9
Gene4 0
Condition:
If the first column matches, then look in the second column. If there is a value of zero in the second column, then don't consider that record while averaging.
... (5 Replies)
Discussion started by: jacobs.smith
5 Replies
LEARN ABOUT PHP
classkit_method_add
CLASSKIT_METHOD_ADD(3) 1 CLASSKIT_METHOD_ADD(3)
classkit_method_add - Dynamically adds a new method to a given class
SYNOPSIS
bool classkit_method_add (string $classname, string $methodname, string $args, string $code, [int $flags = CLASSKIT_ACC_PUBLIC])
DESCRIPTION
Warning
This function is EXPERIMENTAL. The behaviour of this function, its name, and surrounding documentation may change without notice in
a future release of PHP. This function should be used at your own risk.
PARAMETERS
o $classname
- The class to which this method will be added
o $methodname
- The name of the method to add
o $args
- Comma-delimited list of arguments for the newly-created method
o $code
- The code to be evaluated when $methodname is called
o $flags
- The type of method to create, can be CLASSKIT_ACC_PUBLIC, CLASSKIT_ACC_PROTECTED or CLASSKIT_ACC_PRIVATE
Note
This parameter is only used as of PHP 5, because, prior to this, all methods were public.
RETURN VALUES
Returns TRUE on success or FALSE on failure.
EXAMPLES
Example #1
classkit_method_add(3) example
<?php
class Example {
function foo() {
echo "foo!
";
}
}
// create an Example object
$e = new Example();
// Add a new public method
classkit_method_add(
'Example',
'add',
'$num1, $num2',
'return $num1 + $num2;',
CLASSKIT_ACC_PUBLIC
);
// add 12 + 4
echo $e->add(12, 4);
?>
The above example will output:
16
SEE ALSO
classkit_method_copy(3), classkit_method_redefine(3), classkit_method_remove(3), classkit_method_rename(3), create_function(3).
PHP Documentation Group CLASSKIT_METHOD_ADD(3)