Sponsored Content
Full Discussion: Standard deviation in awk
Top Forums Shell Programming and Scripting Standard deviation in awk Post 302549283 by bartus11 on Monday 22nd of August 2011 12:27:22 PM
Old 08-22-2011
I've fixed your code a bit:
Code:
function std_dev(data, count) {
    sum=0;
    for( x=1; x <= count; x++) {
        sum += data[x];
    }
    avg = sum/count;
    sumsq=0;
    for( x=1; x <= count; x++) {
        sumsq += (data[x] - avg)^2;
    }
    return sqrt(sumsq/count);
}
BEGIN {
    cnt = 0;
}
END {
    std_dev(array17, cnt); std_dev(array19, cnt); std_dev(array20, cnt);
}
NR>1{
   array17[cnt]=$17; array19[cnt]=$19; array20[cnt]=$20; cnt++;
   if (cnt==720) {
      print std_dev(array17, cnt) " " std_dev(array19, cnt) " " std_dev(array20, cnt);
      cnt=0;
   }
}

Run it as: awk -f script.awk testfile.txt
If you need times to be printed before those values, I might come up with something (in an hour or so).
This User Gave Thanks to bartus11 For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Script for finding standard deviation

I have a CSV file that looks like 0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0 10,11,7,0,4,12,2,3,7,0,11,3,12,4,0,5,5,4,5,0,8,6,12,0,9,3,3,0,2,7,8 19,11,7,0,4,14,16,10,8,2,13,7,15,6,0,76,6,4,10,0,18,10,17,1,11,3,3,0,9,9,8... (7 Replies)
Discussion started by: RJ17
7 Replies

2. Shell Programming and Scripting

Mean and Standard deviation

Hi all, I am new to shell scripting and wanna calculate the mean and standard deviation using shell programming. I have a file with letters that are repeating and their corresponding duration a 0.32 a 0.89 aa 0.34 aa 0.23 au 0.012 au 0.26... (4 Replies)
Discussion started by: lakshmikanth.pg
4 Replies

3. UNIX for Dummies Questions & Answers

Calculating the Standard Deviation for a column

Hi all, I want to calculate the standard deviation for a column (happens to be column 3). Does any know of simple awk script to do this? Thanks (1 Reply)
Discussion started by: kylle345
1 Replies

4. Shell Programming and Scripting

using awk to print average and standard deviation into a file

Hi I want to use awk to print avg and st deviation but it does not go into a file for column 1 only. I can do average and # of records but i cannot get st deviation. awk '{sum+=$1} END { print "Average = ",sum/NR}' thanks (1 Reply)
Discussion started by: phil_heath
1 Replies

5. Shell Programming and Scripting

AWK script for standard deviation / root mean square deviation

I have a file with say 50 columns, each containing a whole lot of data. Each column contains data from a separate simulation, but each simulation is related to the data in the last (REFERENCE) column $50 I need to calculate the RMS deviation for each data line, i.e. column 1 relative to... (12 Replies)
Discussion started by: chrisjorg
12 Replies

6. Shell Programming and Scripting

Finding standard deviation for all columns in a data file

Hi All, I want someone to modify the below script from this forum so that it can be used for all columns in the file( instead of only printing column 3 mean and standard deviation values). I don't know how to loop around all the columns. ... (3 Replies)
Discussion started by: ks_reddy
3 Replies

7. Shell Programming and Scripting

calculating row-wise standard deviation using awk

Hi, I have a file containing 100,000 rows-by-120 columns and I need to compute for the standard deviation for each row. Any idea on how to calculate row-wise standard deviation using awk? My sample data looks like this: input data: 23 35 12 25 16 17 18 19 29 12 12 26 15 14 15 23 12 12... (2 Replies)
Discussion started by: ida1215
2 Replies

8. Shell Programming and Scripting

Computing average and standard deviation from multiple text files

Hello there, I found an elegant solution to computing average values from multiple text files awk '{for (i=1;i<=NF;i++){if ($i!~"n/a"){a+=$i}else{b++}}}END{for (i=1;i<=FNR;i++){for (j=1;j<=NF;j++){printf (a/(3-b))((b>0)?"~"b" ":" ")};printf "\n"}}' file1 file2 file3 I tried to modify... (2 Replies)
Discussion started by: charmmilein
2 Replies

9. Shell Programming and Scripting

Output mean and standard deviation of a row

I have a file that looks that this: 820 890 530 1650 1600 1800 1850 1900 2270 1640 2300 1670 2080 2200 2350 1150 1630 2210 I would like to output the mean and standard deviation of each row so that my final output would look like this 820 890 530 746.667 155.849 1650 1600 1800... (5 Replies)
Discussion started by: kayak
5 Replies

10. Shell Programming and Scripting

SMA (Single Moving Average) and Standard Deviation

Hello Team, I am using the following awk script to calculate the SMA (Single Moving Average) for an specific period but now I would like to include the standard deviation output. Could you please help me to modify this awk shell script awk -F, -v points=5 ' { a = $2; ... (4 Replies)
Discussion started by: csierra
4 Replies
sum(1)							      General Commands Manual							    sum(1)

NAME
sum - Displays the checksum and byte count in block-size (1024) units of a file SYNOPSIS
sum [-o | -r] [file...] The sum command reads file and calculates a 16-bit checksum and the byte count in block-size (1024) units in the file. If the file argu- ment is omitted, sum reads standard input. STANDARDS
Interfaces documented on this reference page conform to industry standards as follows: sum: XCU5.0 Refer to the standards(5) reference page for more information about industry standards and associated tags. OPTIONS
[Tru64 UNIX] Uses an algorithm to compute the checksum using word-by-word computation. Uses an alternate algorithm to compute the check- sum (rigorous byte-by-byte computation rather than the word-by-word computation). [Tru64 UNIX] This is the default. OPERANDS
The file for which a checksum is to be computed. If this operand is omitted, standard input is used. DESCRIPTION
The checksum and number of blocks are written to standard output. The sum command is generally used to determine if a file that was copied or communicated over transmission lines is an exact copy of the original. The sum command writes the space used in 1024-byte units. [Tru64 UNIX] The checksum is calculated using a rigorous byte-byte computation by default. System V Compatibility [Tru64 UNIX] The checksum algorithms for the default sum command and the SVID 2 compliant sum command are reversed. The SVID 2 compliant sum command uses the word-by-word algorithm by default and uses the byte-by-byte algorithm if you specify the -r option on the command line. NOTES
The sum utility is marked LEGACY in XCU Issue 5. [Tru64 UNIX] The default algorithm is no longer the word-by-word computation algorithm. It was changed to the 4.3BSD default algorithm. The algorithms used may not be portable, that is, the same checksum may not be produced for the same input on different systems. Portable applications should use cksum. EXIT STATUS
The following exit values are returned: Successful completion. An error occurred. EXAMPLES
To display the checksum of datafile and the number of blocks in this file, enter: sum datafile If the checksum of datafile is 1605 and if the file contains 3 blocks, sum displays: 1605 3 datafile ENVIRONMENT VARIABLES
The following environment variables affect the execution of sum: Provides a default value for the internationalization variables that are unset or null. If LANG is unset or null, the corresponding value from the default locale is used. If any of the internationalization vari- ables contain an invalid setting, the utility behaves as if none of the variables had been defined. If set to a non-empty string value, overrides the values of all the other internationalization variables. Determines the locale for the interpretation of sequences of bytes of text data as characters (for example, single-byte as opposed to multibyte characters in arguments). Determines the locale for the for- mat and contents of diagnostic messages written to standard error. Determines the location of message catalogues for the processing of LC_MESSAGES. SEE ALSO
Commands: cksum(1), wc(1) Standards: standards(5) sum(1)
All times are GMT -4. The time now is 10:25 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy