Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

@antv/dw-transform

1.0.0 • Public • Published

Transform

Install

npm

npm install @antv/dw-transform

yarn

yarn add @antv/dw-analyzer

Schema

{
  "groupBy": [...],
  "actions": [
    {
      "type": ...,
      "field": ...,
      "as": ...,
      "options": {
        ...,
      }
    }
  ]
}

Usage

autoTransform

The autoTransform function generates transform schemas to aggregate data fields in a default way.

const data = [
  { gender: 'Male', height: 180 },
  { gender: 'Female', height: 165 },
  { gender: 'Male', height: 170 },
];
 
const { result, schemas } = autoTransform(data);
 
console.log(schemas);
// [
//   {
//     groupBy: ['gender'],
//     actions: [
//       {
//         type: 'sum',
//         field: 'height',
//         as: 'SUM(height)',
//       },
//     ],
//   },
// ]
 
console.log(result);
// [
//   { gender: 'Male', 'SUM(height)': 350 },
//   { gender: 'Female', 'SUM(height)': 165 },
// ]

renameOption

The renameOption parameter of the autoTransform function defines how the created aggregation field would be named.

Say, field title is field1 and aggregation type is sum:

renameOption as
'brackets' (default)
true
'SUM(field1)'
'underline' 'SUM_field1'
'origin'
false
'field1'
function f(a,b) f('field1', 'sum')
const data = [
  { gender: 'Male', height: 180 },
  { gender: 'Female', height: 165 },
  { gender: 'Male', height: 170 },
];
 
const { result, schemas } = autoTransform(data, false);
 
console.log(schemas);
// [
//   {
//     groupBy: ['gender'],
//     actions: [
//       {
//         type: 'sum',
//         field: 'height',
//         as: 'height',        // as origin
//       },
//     ],
//   },
// ]
 
console.log(result);
// [
//   { gender: 'Male', 'height': 350 },         // as origin
//   { gender: 'Female', 'height': 165 },       // as origin
// ]

parse

If you already have a dataset and a transform schema for it, you can use the function parse to get the result.

const data = [
  { id: '1', height: 10.5, weight: 60 },
  { id: '2', height: null, weight: 40 },
  { id: '3', height: 9.5, weight: null },
  { id: '', height: 9.5, weight: 80 },
  { id: '5', height: 9.5 },
];
 
const schema = {
  actions: [
    {
      type: 'removeNull',
      field: 'id',
      as: null,
    },
  ],
}
 
const result = parse(data, schema);
// [
//   { id: '1', height: 10.5, weight: 60 },
//   { id: '2', height: null, weight: 40 },
//   { id: '3', height: 9.5, weight: null },
//   { id: '5', height: 9.5 },
// ]

Keywords

none

Install

npm i @antv/dw-transform

DownloadsWeekly Downloads

98

Version

1.0.0

License

MIT

Unpacked Size

348 kB

Total Files

46

Last publish

Collaborators

  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar