Visit Our UNIX and Linux User Community

counts based on percentage

Thread Tools Search this Thread
Top Forums Shell Programming and Scripting counts based on percentage
# 1  
Old 08-04-2011
counts based on percentage

I have a file with multiple entries and I have calculated the percentages. Now I want to know how many of my entries are there between 1-10% 11-20% and so on..

chr1_14401_14450    0.211954217888936
chr1_14451_14500   1.90758796100042
chr1_14501_14550   4.02713013988978
chr1_14551_14600   6.14667231877914
chr1_14601_14650   8.2662144976685
chr1_14651_14700   10.3857566765579
chr1_14701_14750   12.5052988554472
chr1_14751_14800   14.6248410343366
chr1_14801_14850   16.7443832132259
chr1_14851_14900   18.8639253921153

My percentages are in double,so it needs to be rounded off to the nearest and then accordingly calculate. How can I do this in awk?


0-10 5
11-20 5
21-30 0
31-40 0

so on until
90-100% 0

# 2  
Old 08-05-2011
awk '{a[int($2/10)*10]++}END{for (i in a) print i "-" i+10, a[i]|"sort -n"}' infile

Some updates based on Chubler_XL's code below

awk '{a[int($2/10)*10]++}END{for (i=0;i<100;i+=10) print i+1 "-" i+10, 0+a[i]}' infile

Last edited by rdcwayx; 08-05-2011 at 02:34 AM..
This User Gave Thanks to rdcwayx For This Post:
# 3  
Old 08-05-2011
Slight improvement - ensure zero counts are printed, no need to call external sort:

awk '{a[int($2/10)]++}END{while(++i<11) print i*10-9 "-" i*10, 0+a[i-1]}' infile

These 2 Users Gave Thanks to Chubler_XL For This Post:
# 4  
Old 08-05-2011

Thank you..It works great..

But what if I want to have it for every 1 %, I mean instead of 1-10,11-20 and so on.. I want for 0-1,1-2,2-3 so on.. 99-100?

I tied to change the code accordingly, but it gave me zero's.


---------- Post updated at 09:46 AM ---------- Previous update was at 09:15 AM ----------

I figured it out.

Thank you for the response

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. Solaris

Capture PRSTAT based on CPU usage percentage

Hi, Recently i have write a simple script to capture CPU high usage based on prstat but i found out that it did capture correctly. I need to capture the rows that contains CPU usage more than 3%. Below line which i thought will capture CPU usage based CPU column in prstat(9th parameter) which is... (3 Replies)
Discussion started by: tharmendran
3 Replies

2. Shell Programming and Scripting

Different counts between programs and commands

In the attached file if I do a count for "aaaaaaaaaaaa" in either notepad++ or excel I get 118,456. However, when I do either grep -o aaaaaaaaaaaa 12A.txt | wc -w or awk '{ for (i=1;i<=NF;i++) if ( $i == "aaaaaaaaaaaa") c++ } END{ print c}' 12A.txt I... (3 Replies)
Discussion started by: cmccabe
3 Replies

3. UNIX for Dummies Questions & Answers

Get counts from List

This is very easy , but I`m struggling .. please help modify my script, I want to count the number of h and n , from the second column group by the first. The second column is binary, can only have h and n. a h a h a n a n a h b h b h b h b h b h c n c h c h c h c h (2 Replies)
Discussion started by: jianp83
2 Replies

4. Shell Programming and Scripting

Filtering lines for column elements based on corresponding counts in another column

Hi, I have a file like this ACC 2 2 21 aaa AC 443 3 22 aaa GCT 76 1 33 xxx TCG 34 2 33 aaa ACGT 33 1 22 ggg TTC 99 3 44 wee CCA 33 2 33 ggg AAC 1 3 55 ddd TTG 10 1 22 ddd TTGC 98 3 22 ddd GCT 23 1 21 sds GTC 23 4 32 sds ACGT 32 2 33 vvv CGT 11 2 33 eee CCC 87 2 44... (1 Reply)
Discussion started by: polsum
1 Replies

5. Shell Programming and Scripting

Counts based on occurances

Hi, I have a file with 2500 entries. There are many duplicates,triplicates symbols in my file in the first column and the second column has categories(high/medium/low) . I want to have count for the occurances of each category for each unique symbol ABC high ABC high ABC medium ABC ... (2 Replies)
Discussion started by: Diya123
2 Replies

6. UNIX for Dummies Questions & Answers

wc -c counts 1 char more per line

Hi, this might be a basic question... why is that wc -c counts 1 more per line than what is there. for example, > cat dum1.txt 123 12 > wc -c dum1.txt 7 dum1.txt Thanks, Sameer. (4 Replies)
Discussion started by: ensameer
4 Replies

7. UNIX for Dummies Questions & Answers


To start I have a table that has ticketholders. Each ticket holder has a unique number and each ticket holder is associated to a so called household number. You can have multiple guests w/i a household. I would like to create 3 flags (form a, for a household that has 1-4 gst) form b 5-8 gsts... (3 Replies)
Discussion started by: sbr262
3 Replies

8. UNIX for Dummies Questions & Answers


How can i do a simple record count in my shell script? i just want to count the number of records i receive from a specific file. (11 Replies)
Discussion started by: k@ssidy
11 Replies

Featured Tech Videos