Sponsored Content
Top Forums Shell Programming and Scripting Compute average based on field values Post 303013522 by RudiC on Thursday 22nd of February 2018 02:31:18 PM
Old 02-22-2018
Quote:
Originally Posted by ncwxpanther
. . . but appears to work.
Does it? For your 2017 line, yes, but not for your specified task for the entire data file. To implement that, you need to tell us,
- are the records sorted in ascending / descending order?
- are there more / other lines, on top of 2016 or 2017 lines, like 2015 or 2018? Should those be ignored?

Try
Code:
awk '$2==2016 {SUM[$1]+=$14; CNT[$1]++} $2==2017 {SUM[$1]+=$3+$4; CNT[$1]+=2} END {for (s in SUM) print s, SUM[s]/CNT[s]}' file

If there are no other data / years to be found, this can be simplified. The order of data is not conserved.


EDIT: IF there's 2016 & 2017 only, try
Code:
awk '
        {SUM[$1] += ($2==2016 ? $14 : $3+$4)
         CNT[$1] += $2-2015
        }

END     {for (s in SUM) print s, SUM[s]/CNT[s]
        }

' file
001001 42.07


Last edited by RudiC; 02-22-2018 at 03:39 PM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Find top N values for field X based on field Y's value

I want to find the top N entries for a certain field based on the values of another field. For example if N=3, we want the 3 best values for each entry: Entry1 ||| 100 Entry1 ||| 95 Entry1 ||| 30 Entry1 ||| 80 Entry1 ||| 50 Entry2 ||| 40 Entry2 ||| 20 Entry2 ||| 10 Entry2 ||| 50... (1 Reply)
Discussion started by: FrancoisCN
1 Replies

2. Shell Programming and Scripting

Average values in a column based on range

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

3. Shell Programming and Scripting

Get the average from column and write the value at the last field

Dear Experts, Kindly help me please to get the average from column 14 and to write the value at the last field., But we need to take as reference the column 16., example the first 4 lines has the same value in column 16, therefore I want ot get the average only for these lines in column 14. And... (2 Replies)
Discussion started by: jiam912
2 Replies

4. Shell Programming and Scripting

Compute average ignoring outliers of different segments within a dat file using awk

I have data files that look like this, say data.txt 0.00833 6.34 0.00833 6.95 0.00833 7.08 0.00833 8.07 0.00833 8.12 0.00833 8.26 0.00833 8.70 0.00833 9.36 0.01667 20.53 0.01667 6.35 0.01667 6.94 0.01667 7.07 0.01667 8.06 0.01667 8.10 0.01667 8.25 0.01667 8.71 0.01667 9.31... (7 Replies)
Discussion started by: malandisa
7 Replies

5. Shell Programming and Scripting

Shell or awk script to compute average of all the points within a circle

HI Help, I have a file which looks like below --- Input file ---> 1970113.00000 3460.00000 1.09516 1970116.00000 3791.00000 1.06350 1970120.00000 4120.00000 1.07588 1970115.00000 4450.00000 1.09591 1970116.00000 4780.00000 1.09965 1970120.00000 5109.00000 1.06733 ... (7 Replies)
Discussion started by: Indra2011
7 Replies

6. Shell Programming and Scripting

awk to combine by field and average by another

In the below awk I am trying to combine all matching $4 into a single $5 (up to the -), and count the lines in $6 and average all values in $7. The awk is close but it seems to only be using the last line in the file and skipping all others. The posted input is a sample of the file that is over... (3 Replies)
Discussion started by: cmccabe
3 Replies

7. Shell Programming and Scripting

awk to adjust coordinates in field based on sequential numbers in another field

I am trying to output a tab-delimited result that uses the data from a tab-delimited file to combine and subtract specific lines. If $4 matches in each line then the first matching sequential $6 value is added to $2, unless the value is 1, then the original $2 is used (like in the case of line... (3 Replies)
Discussion started by: cmccabe
3 Replies

8. UNIX for Beginners Questions & Answers

Print lines based upon unique values in Nth field

For some reason I am having difficulty performing what should be a fairly easy task. I would like to print lines of a file that have a unique value in the first field. For example, I have a large data-set with the following excerpt: PS003,001 MZMWR/ L-DWD// * PS003,001... (4 Replies)
Discussion started by: jvoot
4 Replies

9. Shell Programming and Scripting

awk to look up values in File 2 from File 1, & printingNth field of File1 based value of File2 $2

I have two files which are the output of a multiple choice vocab test (60 separate questions) from 104 people (there are some missing responses) and the question list. I have the item list in one file (File1) Item,Stimulus,Choice1,Choice2,Choice3,Choice4,Correct... (5 Replies)
Discussion started by: samonl
5 Replies

10. UNIX for Beginners Questions & Answers

Problem with getting awk to multiply a field by a value set based on condition of another field

Hi, So awk is driving me crazy on this one. I have searched everywhere and read man, docs and every related post Google can find and still no luck. The actual files I need to run this on are sensitive in nature, but it is the same thing as if I needed to calculate weighted grades for multiple... (15 Replies)
Discussion started by: cotilloe
15 Replies
mlib_SignalConv_S16_S16_Sat(3MLIB)			    mediaLib Library Functions				mlib_SignalConv_S16_S16_Sat(3MLIB)

NAME
mlib_SignalConv_S16_S16_Sat, mlib_SignalConv_S16S_S16S_Sat, mlib_SignalConv_F32_F32, mlib_SignalConv_F32S_F32S - signal convolution SYNOPSIS
cc [ flag... ] file... -lmlib [ library... ] #include <mlib.h> mlib_status mlib_SignalConv_S16_S16_Sat(mlib_s16 *dst, const mlib_s16 *src1, const mlib_s16 *src2, mlib_s32 m, mlib_s32 n); mlib_status mlib_SignalConv_S16S_S16S_Sat(mlib_s16 *dst, const mlib_s16 *src1, const mlib_s16 *src2, mlib_s32 m, mlib_s32 n); mlib_status mlib_SignalConv_F32_F32(mlib_f32 *dst, const mlib_f32 *src1, const mlib_f32 *src2, mlib_s32 m, mlib_s32 n); mlib_status mlib_SignalConv_F32S_F32S(mlib_f32 *dst, const mlib_f32 *src1, const mlib_f32 *src2, mlib_s32 m, mlib_s32 n); DESCRIPTION
Each of these functions performs convolution. For monaural signals, the following equation is used: m-1 dst[i] = SUM (src1[j] * src2[i - j]) if m <= n j=0 n-1 dst[i] = SUM (src2[j] * src1[i - j]) if m > n j=0 where i = 0, 1, ..., (m + n - 2). For stereo signals, the following equation is used: m-1 dst[2*i] = SUM (src1[2*j] * src2[2*(i - j)]) j=0 m-1 dst[2*i + 1] = SUM (src1[2*j + 1] * src2[2*(i - j) + 1]) j=0 if m <= n, or n-1 dst[2*i] = SUM (src2[2*j] * src1[2*(i - j)]) j=0 n-1 dst[2*i + 1] = SUM (src2[2*j + 1] * src1[2*(i - j) + 1]) j=0 if m > n; where i = 0, 1, ..., (m + n - 2). PARAMETERS
Each of the functions takes the following arguments: dst Destination signal array. src1 First source signal array. src2 Second source signal array. m Number of samples in the first source signal array. n Number of samples in the second source signal arrays. RETURN VALUES
Each of the functions returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Evolving | +-----------------------------+-----------------------------+ |MT-Level |MT-Safe | +-----------------------------+-----------------------------+ SEE ALSO
attributes(5) SunOS 5.10 10 Nov 2004 mlib_SignalConv_S16_S16_Sat(3MLIB)
All times are GMT -4. The time now is 09:35 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy