Sponsored Content
Full Discussion: Standard deviation in awk
Top Forums Shell Programming and Scripting Standard deviation in awk Post 302549465 by bartus11 on Tuesday 23rd of August 2011 06:19:19 AM
Old 08-23-2011
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 sprintf ("%.4f", 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;
   }
}

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
MINTEGRATE(1)							   User Commands						     MINTEGRATE(1)

NAME
mintegrate - evaluate average/sum/integral/derivative of 1-d numerical data SYNOPSIS
mintegrate [OPTION]... [FILE] DESCRIPTION
mintegrate is a program to compute averages, sums, integrals or derivatives of numerical 1-d data in situations where ultimate numerical precision is not needed. OPTIONS
-a compute mean value (arithmetic average) and standard deviation -c compute integral on closed x-data interval; In case that dx is not specified by the '-d' flag, the data are supposed to be from an irregular x-grid, and dx is computed separately for every x-interval. The integral is computed by the trapezoidal rule. -d <float> compute integral on open x-data interval with the specified dx; Can be used also in combination with '-D' and '-c'. -D compute difference btw. numbers or derivative of the y-data; In the default scenario where x- and y-data column are same, the dif- ference btw. the current and the previous data value will be output. In this case when '-d' is defined as 0, the x-data value will be print out in front of the calculated difference. If x-and the y-column are different and if the x-data resolution is not defined or it is !=0, then the derivative of the y-data is calculated. When the x-data resolution is constant, specify it explicitly by '-d' to achieve a higher numerical precision by a 'leapfrog' algorithm. -x <int> x-data column (default is 1). If 0, the x-range is an index; -y <int> y-data column, where y=f(x) (default is 1) -r x_0:x_1 x-data range to consider -s print out accumulated y_i sums: x_i versus accumulated f(x_i); In the case of a closed integral you have to specify also the x-data resolution dx (see '-d' above). -S compute the accumulated y_i-sums and add it to the output -p <str> print format of the result ("%.10g" is default) -t <str> output text in front of the result (invalid with '-s' or '-S'); A blank can be printed by using a double underscore character '__'. -T run a self-test that the program is working correctly -V print version number --version output version and license message --help|-H display help -h display short help (options summary) If none of the options '-a', '-D', '-d', or '-c' is used, then the sum of the provided data will be computed. Empty lines or lines starting with '#' are skipped. This program is perfectly suitable as a basic tool for initial data analysis and will meet the expected accuracy of a numerical solution for the most demanding computer users and professionals. Yet be aware that, although the computations are carried with double floating pre- cision, the computational techniques used for evaluating an integral or a standard deviation are analytically low-order approximations, and thus not intended to be used for numerical computations in engineering or mathematical sciences for cases where an ultimate numerical pre- cision is a must. For deeper understanding of the topic see http://en.wikipedia.org/wiki/Numerical_analysis. COPYRIGHT
Copyright (C) 1997, 2001, 2006-2007, 2009, 2011-2012 Dimitar Ivanov License: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. mintegrate 2.2.1 February 2012 MINTEGRATE(1)
All times are GMT -4. The time now is 04:23 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy