UNPKG

ansi-chart

Version:

A lightweight and simple tool for rendering beautiful charts directly in your terminal using only ANSI-compatible ASCII characters. Create bar charts, line graphs, and more with customizable styles, all without external dependencies. Perfect for CLI appli

71 lines 1.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Dataset = void 0; class Dataset { constructor(values) { if (!values) this.values = []; else this.values = values; } rows(indices) { return new Dataset(this.values.filter((r, i) => indices.includes(i))); } columns(indices) { return new Dataset(this.values.map((v) => v.filter((v, i) => indices.includes(i)))); } row(index) { return this.values[index]; } column(index) { return this.values.map((v) => v[index]); } get(row, column) { return this.values[row][column]; } set(row, column, value) { this.values[row][column] = value; } append(value) { this.values.push(value); return this; } toArray() { return this.values; } get size() { return { rows: this.values.length, columns: this.values[0]?.length ?? 0, }; } sum(column) { return this.column(column).reduce((acc, cur) => acc + cur); } mean(column) { return this._mean(this.column(column)); } median(column) { const col = this.column(column); col.sort(function (a, b) { return a - b; }); const mid = col.length / 2; return mid % 1 ? col[mid - 0.5] : (col[mid - 1] + col[mid]) / 2; } variance(column) { const col = this.column(column); const mean = this._mean(col); return this._mean(col.map(function (num) { return Math.pow(num - mean, 2); })); } standardDeviation(column) { return Math.sqrt(this.variance(column)); } _mean(array) { return array.reduce((acc, cur) => acc + cur) / array.length; } } exports.Dataset = Dataset; //# sourceMappingURL=dataset.js.map