Sponsored Content
Homework and Emergencies Emergency UNIX and Linux Support Average columns based on header name Post 302969099 by RudiC on Friday 18th of March 2016 04:23:36 AM
Old 03-18-2016
Not without way more evidence.

---------- Post updated at 09:23 ---------- Previous update was at 09:13 ----------

The averaging error in the last record corrected. Try
Code:
paste FILE1 FILE2 |  awk '
NR == 1         {print "Gene    Average_10%     Average_20%     Average_30%     Average_40%     Average_50%     Average_60%"\
                        "       Average_70%     Average_80%     Average_90%     Average_100%"
                 printf "%s", $2
                 OFS="\t"
                 ST = B
                 F = 2
                 next
                }
$1+0 < ST       {SUM+=$2; next}
$1+0 == ST      {SUM+=$2; if (!getline) F--}
                {printf "%s%.6f", OFS, SUM/(NR-F)
                 SUM = $2
                 ST = ST%100 + B
                 if (ST == B) printf RS
                 F = NR}
' B=10
Gene    Average_10%     Average_20%     Average_30%     Average_40%     Average_50%     Average_60%     Average_70%     Average_80%     Average_90%     Average_100%
Gene1   0.008554        0.002911        0.012579        0.011645        0.018438        0.005032        0.010675        0.002013        0.010675        0.029597
        0.013662        0.017879        0.006343        0.014586        0.011292        0.005367        0.019761        0.014638        0.010822        0.023525
        0.016471        0.013692        0.007951        0.012049        0.001095        0.015903        0.008215        0.007951        0.007120        0.017526
        0.020158        0.019438        0.007866        0.007111        0.018490        0.016716        0.021334        0.017208        0.006637        0.038876
        0.010437        0.027014        0.003845        0.010064        0.015891        0.010986        0.010594        0.019775        0.014302        0.023306
        0.006866        0.022512        0.006866        0.015008        0.010152        0.014648        0.016332        0.015106        0.016332        0.041934
        0.015733        0.025127        0.004425        0.014697        0.015171        0.017699        0.014697        0.016225        0.019438        0.032238
        0.009547        0.017993        0.005207        0.006277        0.023433        0.009981        0.010461        0.015622        0.013390        0.011298
        0.010116        0.009754        0.003613        0.002787        0.010451        0.018064        0.042501        0.024567        0.019509        0.022296
        0.011702        0.017866        0.005363        0.007523        0.004231        0.023403        0.014575        0.008289        0.015515        0.034321
        0.005176        0.018854        0.007476        0.018854        0.008872        0.023577        0.012199        0.024152        0.019963        0.038816
        0.025605        0.014681        0.008304        0.012012        0.012012        0.008304        0.022022        0.014533        0.007341        0.024024
        0.016357        0.014646        0.014410        0.014271        0.010515        0.027262        0.025162        0.031935        0.025537        0.025162

Does the "division by zero" error occur in here as well?
This User Gave Thanks to RudiC For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk based script to find the average of all the columns in a data file

Hi All, I need the modification for the below mentioned code (found in one more post https://www.unix.com/shell-programming-scripting/27161-script-generate-average-values.html) to find the average values for all the columns(but for a specific rows) and print the averages side by side. I have... (4 Replies)
Discussion started by: ks_reddy
4 Replies

2. Shell Programming and Scripting

Average of columns with values of other column with same name

I have a lot of input files that have the following form: Sample Cq Sample Cq Sample Cq Sample Cq Sample Cq 1WBIN 23.45 1WBIN 23.45 1CVSIN 23.96 1CVSIN 23.14 S1 31.37 1WBIN 23.53 1WBIN 23.53 1CVSIN 23.81 1CVSIN 23.24 S1 31.49 1WBIN 24.55 1WBIN 24.55 1CVSIN 23.86 1CVSIN 23.24 S1 31.74 ... (3 Replies)
Discussion started by: isildur1234
3 Replies

3. Shell Programming and Scripting

Average, min and max in file with header, using awk

Hi, I have a file which looks like this: FID IID MISS_PHENO N_MISS N_GENO F_MISS 12AB43131 12AB43131 N 17774 906341 0.01961 65HJ87451 65HJ87451 N 10149 906341 0.0112 43JJ21345 43JJ21345 N 2826 906341 0.003118I would... (11 Replies)
Discussion started by: kayakj
11 Replies

4. Shell Programming and Scripting

Extract columns based on header

Hi to all, I have two files. File1 has no header, two columns: sample1 A sample2 B sample3 B sample4 C sample5 A sample6 D sample7 D File2 has a header, except for the first 3 columns (chr,start,end). "sample1" is the header for the 4th ,5th ,6th columns, "sample2" is the header... (4 Replies)
Discussion started by: aec
4 Replies

5. Shell Programming and Scripting

Make copy of text file with columns removed (based on header)

Hello, I have some tab delimited text files with a three header rows. The headers look like, (sorry the tabs look so messy). index group Name input input input input input input input input input input input... (9 Replies)
Discussion started by: LMHmedchem
9 Replies

6. Shell Programming and Scripting

Average across multiple columns group by

Hi experts, I want to group by average, for multiple columns starting column $7 until NF, group by ($1-$5), please help For just 7th column, I can do awk ' NR>1{ arr += $7 count += 1 } END{ for (a in arr) { print a, arr/count ... (10 Replies)
Discussion started by: ritakadm
10 Replies

7. UNIX for Beginners Questions & Answers

Keep only columns in first two rows based on partial header pattern.

I have this code below that only prints out certain columns from the first two rows (doesn't affect rows 3 and beyond). How can I do the same on a partial header pattern “G_TP” instead of having to know specific column numbers (e.g. 374-479)? I've tried many other commands within this pipe with no... (4 Replies)
Discussion started by: aachave1
4 Replies

8. Shell Programming and Scripting

Find columns in a file based on header and print to new file

Hello, I have to fish out some specific columns from a file based on the header value. I have the list of columns I need in a different file. I thought I could read in the list of headers I need, # file with header names of required columns in required order headers_file=$2 # read contents... (11 Replies)
Discussion started by: LMHmedchem
11 Replies

9. Shell Programming and Scripting

Average of a columns from three files

hello, I have three files in the following order ==> File1 <== 1 20977000 20977000 A C 1.00 0,15 15 45 1 115829313 115829313 G A 0.500 6,7 13 99 ==> File2 <== 1 20977000 20977000 A C 1.00 0,13 13 39 1 115829313 ... (5 Replies)
Discussion started by: nans
5 Replies

10. UNIX for Beginners Questions & Answers

Average of columns

I have files that have the following columns chr pos ref alt sample 1 sample 2 sample 3 chr2 179644035 G A 1,107 0,1 58,67 chr7 151945167 G T 142,101 100,200 500,700 chr13 31789169 CTT CT,C 6,37,8 0,0,0 15,46,89 chr22 ... (3 Replies)
Discussion started by: nans
3 Replies
mlib_ImageNormCrossCorrel_Fp(3MLIB)			    mediaLib Library Functions			       mlib_ImageNormCrossCorrel_Fp(3MLIB)

NAME
mlib_ImageNormCrossCorrel_Fp - normalized cross correlation SYNOPSIS
cc [ flag... ] file... -lmlib [ library... ] #include <mlib.h> mlib_status mlib_ImageNormCrossCorrel_Fp(mlib_d64 *correl, const mlib_image *img1, const mlib_image *img2, const mlib_d64 *mean2, const mlib_d64 *sdev2); DESCRIPTION
The mlib_ImageNormCrossCorrel_Fp() function computes the normalized cross-correlation coefficients between a pair of floating-point images, on a per-channel basis. It uses the following equations: w-1 h-1 SUM SUM (d1[x][y][i] * d2[x][y][i]) x=0 y=0 correl[i] = ------------------------------------- s1[i] * s2[i] d1[x][y][i] = img1[x][y][i] - m1[i] d2[x][y][i] = img2[x][y][i] - m2[i] 1 w-1 h-1 m1[i] = ----- * SUM SUM img1[x][y][i] w*h x=0 y=0 1 w-1 h-1 m2[i] = ----- * SUM SUM img2[x][y][i] w*h x=0 y=0 w-1 h-1 s1[i] = sqrt{ SUM SUM (img1[x][y][i] - m1[i])**2 } x=0 y=0 w-1 h-1 s2[i] = sqrt{ SUM SUM (img2[x][y][i] - m2[i])**2 } x=0 y=0 where w and h are the width and height of the images, respectively; m1 and m2 are the mean arrays of the first and second images, respec- tively; s1 and s2 are the un-normalized standard deviation arrays of the first and second images, respectively. In usual cases, the normalized cross-correlation coefficient is in the range of [-1.0, 1.0]. In the case of (s1[i] == 0) or (s2[i] == 0), where a constant image channel is involved, the normalized cross-correlation coefficient is defined as follows: #define signof(x) ((x > 0) ? 1 : ((x < 0) ? -1 : 0)) if ((s1[i] == 0.) || (s2[i] == 0.)) { if ((s1[i] == 0.) && (s2[i] == 0.)) { if (signof(m1[i]) == signof(m2[i]) { correl[i] = 1.0; } else { correl[i] = -1.0; } } else { correl[i] = -1.0; } } The two images must have the same type, the same size, and the same number of channels. They can have 1, 2, 3 or 4 channels. They can be of type MLIB_FLOAT or MLIB_DOUBLE. If (mean2 == NULL) or (sdev2 == NULL), then m2 and s2 are calculated in this function according to the formulas shown above. Otherwise, they are calculated as follows: m2[i] = mean2[i]; s2[i] = sdev2[i] * sqrt(w*h); where mean2 and sdev2 can be the output of mlib_ImageMean() and mlib_ImageStdDev(), respectively. In some cases, the resulting coefficients of this function could be NaN, Inf, or -Inf. PARAMETERS
The function takes the following arguments: correl Pointer to normalized cross correlation array on a channel basis. The array must be the size of channels in the images. correl[i] contains the cross-correlation of channel i. img1 Pointer to first image. img2 Pointer to second image. mean2 Pointer to the mean array of the second image. sdev2 Pointer to the standard deviation array of the second image. RETURN VALUES
The function 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 |Committed | +-----------------------------+-----------------------------+ |MT-Level |MT-Safe | +-----------------------------+-----------------------------+ SEE ALSO
mlib_ImageAutoCorrel(3MLIB), mlib_ImageAutoCorrel_Fp(3MLIB), mlib_ImageCrossCorrel(3MLIB), mlib_ImageCrossCorrel_Fp(3MLIB), mlib_ImageNorm- CrossCorrel(3MLIB), attributes(5) SunOS 5.11 2 Mar 2007 mlib_ImageNormCrossCorrel_Fp(3MLIB)
All times are GMT -4. The time now is 02:51 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy