Sponsored Content
Top Forums Shell Programming and Scripting Calculating average from files Post 302960814 by Don Cragun on Thursday 19th of November 2015 05:28:01 PM
Old 11-19-2015
Quote:
Originally Posted by avina
I have some files with the following contents.I would like to calculate average of fifth column. How can I do this with awk?

Code:
file1

cat 95.9    152 78.0    17.9
rat 67.1    153 36.5    30.6
dog 81.4    154 68.1    13.3
dog 92.0    155 55.5    36.5
rat 73.8    156 23.9    49.9
file2

rat    79.0     157  64.3   14.7
fish   67.7     158  4.9    62.8
goat   90.2     159 80.7    9.5
dog    130.8    160 25.1    105.7

desired output

cat    17.9
rat    31.73
dog    51.83
fish   62.8
goat   9.5

I used the following code to calculate average. But the output is wrong.
Code:
awk '{a[$1]+=$5}END {for (i in a) {print i,a[i];Total+=a[i]}; print "average - ", Total/NR}' *

Code:
rat 95.2
goat 9.5
fish 62.8
cat 17.9
dog 155.5
average -  37.8778

Saying "the output is wrong" doesn't help us much. What, in the output you are getting, is wrong? With your sample input, what output are you trying to get? The output you said you want does not show the sum of values for each animal nor the average value for each animal (except for animals that only appear in one of your input files). Are you trying to prints animal sums in the output, or animal averages?

What values are you trying to average in your final line of output? Are you trying to calculate the average of all of the input values (which seems to be what your code is doing)? Are you trying to calculate the average of the averages for each animal? Are you trying to calculate the average of the sums for each animal?
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Calculating the average

This is the cronjob ---------------------- root@a7germ:/home/paxtemp > crontab -l|grep test 57 * * * * /home/paxtemp/test_1.sh 0,5,10,15,20,25,30,35,40,45,50,55 * * * * /home/paxtemp/test.sh root@a7germ:/home/paxtemp > This is the contents of test.sh script... (2 Replies)
Discussion started by: kekanap
2 Replies

2. UNIX for Dummies Questions & Answers

Calculating the Number of Rows and Average

Hi All I like to know how can we calculate the number of rows and the average of the values present in the file. I will not know what will be the rowcount, which will be dynamic in nature of the file. eg. 29 33 48 30 28 (6 Replies)
Discussion started by: pk_eee
6 Replies

3. UNIX for Dummies Questions & Answers

Calculating average

Hi, i have 12 float variables in a bash file and i want to calculate the average of them. Can any body help? (6 Replies)
Discussion started by: limadario
6 Replies

4. UNIX for Dummies Questions & Answers

Calculating weighted average

Dear all, i have 200 values in a file. How can i calculate a weighted average and output into a new file avg.dat? INPUT: file1.dat 1.3453 2.434 2.345 ..... OUTPUT: avg.dat file1: 1.762 Thanks. Po (3 Replies)
Discussion started by: chen.xiao.po
3 Replies

5. Shell Programming and Scripting

Calculating average of 100 different files of same size

Hey guys..... I have many files (lets say 100 or more) of same size, and I want to create a new output file and calculate the average of first row fifth column in all files and print it in first row of output file, then 2nd row fifth col in all 100 files and print it in 2nd row of output... (1 Reply)
Discussion started by: CAch
1 Replies

6. Shell Programming and Scripting

Calculating average for every Nth line in the Nth column

Is there an awk script that can easily perform the following operation? I have a data file that is in the format of 1944-12,5.6 1945-01,9.8 1945-02,6.7 1945-03,9.3 1945-04,5.9 1945-05,0.7 1945-06,0.0 1945-07,0.0 1945-08,0.0 1945-09,0.0 1945-10,0.2 1945-11,10.5 1945-12,22.3... (3 Replies)
Discussion started by: ncwxpanther
3 Replies

7. Shell Programming and Scripting

Calculating average with awk

I need to find the average from a file like: data => BW:123 M:30 RTD:0 1 0 1 0 0 1 1 1 1 0 0 1 1 0' data => BW:123 N:30 RTD:0 1 0 1 0 0 1 1 1 1 0 0 1 1 0' data => BW:123 N:30 RTD:0 1 0 1 0 0 1 1 1 1 0 0 1 1 0' data => BW:123 N:30 RTD:0 1 0 1 0 0 1 1 1 1 0 0 1 1 0' data => BW:123 N:30 RTD:0 1... (4 Replies)
Discussion started by: Slagle
4 Replies

8. Shell Programming and Scripting

Calculating the average of scores

Hi I have 2 files file1 aac 23 25 aac 87 90 aac 33 67 file2 23 0.9 24 0.8 25 0.4 ........ 67 0.55 ........ I want to get output as (11 Replies)
Discussion started by: anurupa777
11 Replies

9. UNIX for Dummies Questions & Answers

Calculating average

Hi I have file like below 111,victor,48,12,36 342,Peter,54,58,30 476,Scott,25,36,48 567,Patty,74,17,95 I have written below code to calcualte avereage for every id Victor = 48+12+36/3 #!/bin/ksh /usr/xpg4/bin/awk ' BEGIN {FS=","} {sum=0; n=0;i=3 (1 Reply)
Discussion started by: stew
1 Replies

10. Shell Programming and Scripting

Python Script Calculating Average

Can anyone explain what each line of the code does and how it works? I have no experience with python so I am not sure how the arrays and such work. I found this code while looking through the forums. f = open("exams","r") l = f.readline() while l: l = l.split(" ") values = l ... (22 Replies)
Discussion started by: totoro125
22 Replies
DB2_BIND_PARAM(3)							 1							 DB2_BIND_PARAM(3)

db2_bind_param - Binds a PHP variable to an SQL statement parameter

SYNOPSIS
bool db2_bind_param (resource $stmt, int $parameter-number, string $variable-name, [int $parameter-type], [int $data-type], [int $precision = -1], [int $scale]) DESCRIPTION
Binds a PHP variable to an SQL statement parameter in a statement resource returned by db2_prepare(3). This function gives you more con- trol over the parameter type, data type, precision, and scale for the parameter than simply passing the variable as part of the optional input array to db2_execute(3). PARAMETERS
o $stmt - A prepared statement returned from db2_prepare(3). o $parameter-number - Specifies the 1-indexed position of the parameter in the prepared statement. o $variable-name - A string specifying the name of the PHP variable to bind to the parameter specified by $parameter-number. o $parameter-type - A constant specifying whether the PHP variable should be bound to the SQL parameter as an input parameter ( DB2_PARAM_IN), an output parameter ( DB2_PARAM_OUT), or as a parameter that accepts input and returns output ( DB2_PARAM_INOUT). To avoid memory overhead, you can also specify DB2_PARAM_FILE to bind the PHP variable to the name of a file that contains large object (BLOB, CLOB, or DBCLOB) data. o $data-type - A constant specifying the SQL data type that the PHP variable should be bound as: one of DB2_BINARY, DB2_CHAR, DB2_DOUBLE, or DB2_LONG . o $precision - Specifies the precision with which the variable should be bound to the database. This parameter can also be used for retrieving XML output values from stored procedures. A non-negative value specifies the maximum size of the XML data that will be retrieved from the database. If this parameter is not used, a default of 1MB will be assumed for retrieving the XML output value from the stored procedure. o $scale - Specifies the scale with which the variable should be bound to the database. RETURN VALUES
Returns TRUE on success or FALSE on failure. EXAMPLES
Example #1 Binding PHP variables to a prepared statement The SQL statement in the following example uses two input parameters in the WHERE clause. We call db2_bind_param(3) to bind two PHP variables to the corresponding SQL parameters. Notice that the PHP variables do not have to be declared or assigned before the call to db2_bind_param(3); in the example, $lower_limit is assigned a value before the call to db2_bind_param(3), but $upper_limit is assigned a value after the call to db2_bind_param(3). The variables must be bound and, for parameters that accept input, must have any value assigned, before calling db2_execute(3). <?php $sql = 'SELECT name, breed, weight FROM animals WHERE weight > ? AND weight < ?'; $conn = db2_connect($database, $user, $password); $stmt = db2_prepare($conn, $sql); // We can declare the variable before calling db2_bind_param() $lower_limit = 1; db2_bind_param($stmt, 1, "lower_limit", DB2_PARAM_IN); db2_bind_param($stmt, 2, "upper_limit", DB2_PARAM_IN); // We can also declare the variable after calling db2_bind_param() $upper_limit = 15.0; if (db2_execute($stmt)) { while ($row = db2_fetch_array($stmt)) { print "{$row[0]}, {$row[1]}, {$row[2]} "; } } ?> The above example will output: Pook, cat, 3.2 Rickety Ride, goat, 9.7 Peaches, dog, 12.3 Example #2 Calling stored procedures with IN and OUT parameters The stored procedure match_animal in the following example accepts three different parameters: o an input (IN) parameter that accepts the name of the first animal as input o an input-output (INOUT) parameter that accepts the name of the second animal as input and returns the string TRUE if an animal in the database matches that name o an output (OUT) parameter that returns the sum of the weight of the two identified animals In addition, the stored procedure returns a result set consisting of the animals listed in alphabetic order starting at the animal corresponding to the input value of the first parameter and ending at the animal corresponding to the input value of the second parameter. <?php $sql = 'CALL match_animal(?, ?, ?)'; $conn = db2_connect($database, $user, $password); $stmt = db2_prepare($conn, $sql); $name = "Peaches"; $second_name = "Rickety Ride"; $weight = 0; db2_bind_param($stmt, 1, "name", DB2_PARAM_IN); db2_bind_param($stmt, 2, "second_name", DB2_PARAM_INOUT); db2_bind_param($stmt, 3, "weight", DB2_PARAM_OUT); print "Values of bound parameters _before_ CALL: "; print " 1: {$name} 2: {$second_name} 3: {$weight} "; if (db2_execute($stmt)) { print "Values of bound parameters _after_ CALL: "; print " 1: {$name} 2: {$second_name} 3: {$weight} "; print "Results: "; while ($row = db2_fetch_array($stmt)) { print " {$row[0]}, {$row[1]}, {$row[2]} "; } } ?> The above example will output: Values of bound parameters _before_ CALL: 1: Peaches 2: Rickety Ride 3: 0 Values of bound parameters _after_ CALL: 1: Peaches 2: TRUE 3: 22 Results: Peaches, dog, 12.3 Pook, cat, 3.2 Rickety Ride, goat, 9.7 Example #3 Inserting a binary large object (BLOB) directly from a file The data for large objects are typically stored in files, such as XML documents or audio files. Rather than reading an entire file into a PHP variable, and then binding that PHP variable into an SQL statement, you can avoid some memory overhead by binding the file directly to the input parameter of your SQL statement. The following example demonstrates how to bind a file directly into a BLOB column. <?php $stmt = db2_prepare($conn, "INSERT INTO animal_pictures(picture) VALUES (?)"); $picture = "/opt/albums/spook/grooming.jpg"; $rc = db2_bind_param($stmt, 1, "picture", DB2_PARAM_FILE); $rc = db2_execute($stmt); ?> SEE ALSO
db2_execute(3), db2_prepare(3). PHP Documentation Group DB2_BIND_PARAM(3)
All times are GMT -4. The time now is 02:59 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy