pivot-table-js
TypeScript icon, indicating that this package has built-in type declarations

1.3.1 • Public • Published

build code-size min-size types
node npm

pivot-table-js

A lightweight module that takes an array of objects and produces an array of objects back based on one or more aggregate function per column. Emulating excel pivot tables.

pivot-table-js can calculate different aggregate functions on sets of values. The results can be optionally renamed.

Install

Using npm:

$ npm install pivot-table-js

Using yarn:

$ yarn add pivot-table-js

Example

import { Pivot } from 'pivot-table-js'


const data = [
  {
    domain: 'duckduckgo.com',
    path: '/search',
    traffic: 15000,
    trustFlow: 30
  },
  {
    domain: 'duckduckgo.com',
    path: '/images',
    traffic: 8000,
    trustFlow: 20
  },
  {
    domain: 'google.com',
    path: '/search',
    traffic: 20000,
    trustFlow: 42
  },
  {
    domain: 'google.com',
    path: '/images',
    traffic: 10000,
    trustFlow: 38
  }
]


const index = 'domain'

const aggFunc =   {
  domain: 'count', 
  traffic: ['sum', 'mean'], 
  trustFlow: 'mean' 
}

const rename = ['Domain', 'Frequency', 'Traffic Sum', 'Traffic Average', 'TF Average']

const pivotTable = Pivot(data, index, aggFunc, rename)

console.log(pivotTable)

Will output:

[{
  Domain: 'duckduckgo.com',
  'Frequency': 2,
  'Traffic Sum': 23000,
  'Traffic Average': 11500,
  'TF Average': 25
},
{
  Domain: 'google.com',
  'Frequency': 2,
  'Traffic Sum': 30000,
  'Traffic Average': 15000,
  'TF Average': 40
},
{
  Domain: 'Grand Total',
  'Frequency': 4,
  'Traffic Sum': 53000,
  'Traffic Average': 13250,
  'TF Average': 32.5
}]
Domain Frequency Traffic Sum Traffic Average Average TF
duckduckgo.com 2 23000 11500 25
google.com 2 30000 15000 40
Grand Total 4 53000 13250 32.5

Updates

New feature allows for multiple funcions on the same column, just enclose the type of funcions in an array

const aggFunc =   {
  domain: 'count', 
  traffic: ['sum', 'mean'], 
  trustFlow: 'mean' 
}

Available aggregate functions

Function Definition
count Calculates the count of all values in a set
counta Calculates the count of all values in a set including empty strings
count-unique Calculates the count of all unique values in a set
sum Calculates the sum of values.
mean Calculates the average in a set of values — not rounded
median Calculates the median in a set of values — not rounded
mode Calculates the mode in a set of values
min Minimum gets the minimum value in a set of values
max Maximun gets the maximum value in a set of values

Usage

Pivot(data, index, values [,rename])

  • data <Array<Object>> Prepared Array of objects to pivot against.
  • index <string> The index row to use as pivot.
  • values <Object> Aggregate functions
    • [column: <string>]: <Array<string>> | string Use array for more than one option on the same column
  • rename <Array<string>> Optionally rename the output columns, the order is important.
  • returns: <Array<Object>>

Package Sidebar

Install

npm i pivot-table-js

Weekly Downloads

13

Version

1.3.1

License

ISC

Unpacked Size

36.7 kB

Total Files

17

Last publish

Collaborators

  • alvaronaves