Sponsored Content
Top Forums UNIX for Beginners Questions & Answers Create bins with totals and percentage Post 303044092 by jiam912 on Thursday 13th of February 2020 03:13:04 PM
Old 02-13-2020
Create bins with totals and percentage

I would like to create bins to get histogram with totals and percentage, e.g. starting from 0.

If possible to set the minimum and maximum value in the bins ( in my case value min=0 and max=20 )

Input file
Code:
8  5
10 1
11 4
12 4
12 4
13 5
16 7
18 9
16 9
17 7
18 5
19 5
20 1
21 7

output desired
Code:
      0 0        0.0%
 0 -  2 0        0.0%
 2 -  4 0        0.0%
 4 -  6 0        0.0%
 6 -  8 0        0.0%
 8 - 10 5        6.8%
10 - 12 5        6.8%
12 - 14 13      17.8%
14 - 16 0        0.0%
16 - 18 23      31.5%
18 - 20 19      26.0%
   > 20 8       11.0%
---------------------
Total: 73


I use this code, it works perfectly but the percentage is missed.

Code:
awk 'BEGIN { delta = (delta == "" ? 2 : delta) }
{
    bucketNr = int(($0+delta) / delta)
    cnt[bucketNr]++
    numBuckets = (numBuckets > bucketNr ? numBuckets : bucketNr)
}
END {
    for (bucketNr=1; bucketNr<=numBuckets; bucketNr++) {
        end = beg + delta
        printf "%0.1f %0.1f %d\n", beg, end, cnt[bucketNr]
        beg = end
    }
}' file

Thanks in advance

Last edited by jiam912; 02-14-2020 at 12:46 AM..
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Calculating totals in AWK

Hello, With the following small script I list the size of documents belonging to a certain user by each time selecting the bytes-field of that file ($7). Now it fills the array with every file it finds so in the end the output of some users contains up to 200.000 numbers. So how can I calculate... (7 Replies)
Discussion started by: Hille
7 Replies

2. Shell Programming and Scripting

summarising totals in awk

awk ' FILENAME == "all" { balance += substr($0,17,13) dt = substr($0,6,8) } END { for ( name in balance ) printf("%013s %3s of %8s\n", balance/100,name,dt) | "sort " } ' all > summation using this code i wanted to take summary totals of... (3 Replies)
Discussion started by: paresh n doshi
3 Replies

3. Shell Programming and Scripting

Report Totals

Hello, I have written a script in a previous server and its being migrated to a new server. I'm trying to debug my script since i've had to make minor changes to it to get it to work. I'm having a hard time getting my totals to populate here is the syntax DUMP_COUNT=`sqlplus -S... (4 Replies)
Discussion started by: senormarquez
4 Replies

4. Shell Programming and Scripting

Totals in a file - incorrectly displaying

Afternoon, I have a script which creates/modifies data into a formatted csv. The trailer record should display 2 columns, the first is a static entry of "T" to identify it as a trailer record. The 2nd is a total of amounts in a column throughout the entire file. My total isn't displaying... (8 Replies)
Discussion started by: mcclunyboy
8 Replies

5. Shell Programming and Scripting

Calculating frequency of values within bins

Hi, I am working with files containing 2 columns in which i need to come up with the frequency/count of values in col. 2 falling within specifics binned values of col. 1. the contents of a sample file is shown below: 15 12.5 15 11.2 16 0.2 16 1.4 17 1.6 18 4.5 17 5.6 12 8.6 11 7.2 9 ... (13 Replies)
Discussion started by: ida1215
13 Replies

6. Solaris

Redirecting print to optional output bins

Guys We have a HP P4015 laserjet printer with a 5 bin mailbox attached & configured. We can print to the specific output bins from Oracle e-Business suite, however our print output format is incompatible so it prints out random characters instead of the letter content. I have looked... (2 Replies)
Discussion started by: s1977
2 Replies

7. UNIX for Dummies Questions & Answers

awk solution for taking bins

Hi all, I'm looking for an awk solution for taking bins of data set. For example, if I have two columns of data that I wish to use for a scatter plot, and it contains 5 million lines, how can I take averages of every 100 points, 1000, 10000 etc... The idea is to take bins of the 5,000,000 points... (7 Replies)
Discussion started by: torchij
7 Replies

8. Shell Programming and Scripting

Grand totals in awk

I have a one-liner script like this that gives a total of everything in various directories: for i in *; do (cd $i && cd statelist && echo $i && ls -la |awk 'NR>3 {SUM += $5}\ END { print "Total number of elements " SUM }');done It works just great but at the end I want to print a grand... (3 Replies)
Discussion started by: newbie2010
3 Replies

9. Shell Programming and Scripting

awk to select 2D data bins

I wish to use AWK to do something akin: Select all 2D data with 1<$1<2 and -7.5<$2<-6.5 But it's not working awk 'END {print ($1<=2&&$1>=1&&$2<=-6.5&&$2>=-7.5)}' bla Data: -1.06897 -8.04482 -61.469 -1.13613 -8.04482 -61.2271 -1.00182 -8.04482 -61.2081 -1.06897 -8.13518 -60.8544... (2 Replies)
Discussion started by: chrisjorg
2 Replies
atomic_add(3C)															    atomic_add(3C)

NAME
atomic_add, atomic_add_8, atomic_add_char, atomic_add_16, atomic_add_short, atomic_add_32, atomic_add_int, atomic_add_long, atomic_add_64, atomic_add_ptr, atomic_add_8_nv, atomic_add_char_nv, atomic_add_16_nv, atomic_add_short_nv, atomic_add_32_nv, atomic_add_int_nv, atomic_add_long_nv, atomic_add_64_nv, atomic_add_ptr_nv - atomic add operations SYNOPSIS
#include <atomic.h> void atomic_add_8(volatile uint8_t *target, int8_t delta); void atomic_add_char(volatile uchar_t *target, signed char delta); void atomic_add_16(volatile uint16_t *target, int16_t delta); void atomic_add_short(volatile ushort_t *target, short delta); void atomic_add_32(volatile uint32_t *target, int32_t delta); void atomic_add_int(volatile uint_t *target, int delta); void atomic_add_long(volatile ulong_t *target, long delta); void atomic_add_64(volatile uint64_t *target, int64_t delta); void atomic_add_ptr(volatile void *target, ssize_t delta); uint8_t atomic_add_8_nv(volatile uint8_t *target, int8_t delta); uchar_t atomic_add_char_nv(volatile uchar_t *target, signed char delta); uint16_t atomic_add_16_nv(volatile uint16_t *target, int16_t delta); ushort_t atomic_add_short_nv(volatile ushort_t *target, shortdelta); uint32_t atomic_add_32_nv(volatile uint32_t *target, int32_t delta); uint_t atomic_add_int_nv(volatile uint_t *target, int delta); ulong_t atomic_add_long_nv(volatile ulong_t *target, long delta); uint64_t atomic_add_64_nv(volatile uint64_t *target, int64_t delta); void *atomic_add_ptr_nv(volatile void *target, ssize_t delta); These functions enable the addition of delta to the value stored in target to occur in an atomic manner. The *_nv() variants of these functions return the new value of target. No errors are defined. See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Stable | +-----------------------------+-----------------------------+ |MT-Level |MT-Safe | +-----------------------------+-----------------------------+ atomic_and(3C), atomic_bits(3C), atomic_cas(3C), atomic_dec(3C), atomic_inc(3C), atomic_or(3C), atomic_swap(3C), membar_ops(3C), attributes(5), atomic_ops(9F) The *_nv() variants are substantially more expensive on some platforms than the versions that do not return values. Do not use them unless you need to know the new value atomically (for example, when decrementing a reference count and checking whether it went to zero). 13 May 2005 atomic_add(3C)
All times are GMT -4. The time now is 04:56 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy