![Oracle Drags Its Feet in the JavaScript Trademark Dispute](https://cdn.sanity.io/images/cgdhsj6q/production/919c3b22c24f93884c548d60cbb338e819ff2435-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
stats-lite
Advanced tools
A fairly light statistical package. Works with numeric arrays, and will automatically filter out non-numeric values and attempt to convert string numeric values.
npm install stats-lite --save
var stats = require("stats-lite")
var dice = require("dice")
var rolls = []
for (var i = 0; i < 3000; i++) {
rolls.push(dice.sum(dice.roll("2d6")))
}
console.log("sum: %s", stats.sum(rolls))
console.log("mean: %s", stats.mean(rolls))
console.log("median: %s", stats.median(rolls))
console.log("mode: %s", stats.mode(rolls))
console.log("variance: %s", stats.variance(rolls))
console.log("standard deviation: %s", stats.stdev(rolls))
console.log("sample standard deviation: %s", stats.sampleStdev(rolls))
console.log("85th percentile: %s", stats.percentile(rolls, 0.85))
console.log("histogram:", stats.histogram(rolls, 10))
/* Your exact numbers may vary, but they should be pretty similar:
sum: 21041
mean: 7.0136666666666665
median: 7
mode: 7
variance: 5.8568132222220415
standard deviation: 2.4200853749861886
sample standard deviation: 2.4204888234135953
85th percentile: 10
histogram { values: [ 94, 163, 212, 357, 925, 406, 330, 264, 164, 85 ],
bins: 10,
binWidth: 1.05,
binLimits: [ 1.75, 12.25 ] }
*/
Compatibility Notice: Version 2.0.0+ of this library use features that require Node.js v4.0.0 and above
All of the exported functions take vals
which is an array of numeric values. Non-numeric values will be removed, and string numbers will be converted to Numbers.
NOTE: This will impact some operations, e.g. mean([null, 1, 2, 3])
will be calculated as mean([1, 2, 3])
, (e.g. 6 / 3 = 2
, NOT 6 / 4 = 1.5
)
numbers(vals)
Accepts an array of values and returns an array consisting of only numeric values from the source array. Converts what it can and filters out anything else. e.g.
numbers(["cat", 1, "22.9", 9])
// [1, 22.9, 9]
sum(vals)
Sum the values in the array.
mean(vals)
Calculate the mean average value of vals
.
median(vals)
Calculate the median average value of vals
.
mode(vals)
Calculate the mode average value of vals
.
If vals
is multi-modal (contains multiple modes), mode(vals)
will return a ES6 Set of the modes.
variance(vals)
Calculate the variance from the mean for a population.
stdev(vals)
Calculate the standard deviation of the values from the mean for a population.
sampleVariance(vals)
Calculate the variance from the mean for a sample.
sampleStdev(vals)
Calculate the standard deviation of the values from the mean for a sample.
percentile(vals, ptile)
Calculate the value representing the desired percentile (0 < ptile <= 1)
. Uses the Estimation method to interpolate non-member percentiles.
histogram(vals[, bins])
Build a histogram representing the distribution of the data in the provided number of bins
. If bins
is not set, it will choose one based on Math.sqrt(vals.length)
. Data will look like:
histogram {
values: [ 86, 159, 253, 335, 907, 405, 339, 270, 146, 100 ],
bins: 10,
binWidth: 1.05,
binLimits: [ 1.75, 12.25 ]
}
Where values
are the bins and the counts of the original values falling in that range. The ranges can be calculated from the binWidth
and binLimits
. For example, the first bin values[0]
in this example is from 1.75 < value <= 2.8
. The third bin values[2]
would be 1.75 + (1.05 * 2) < value <= 1.75 + (1.05 * 3)
or 3.85 < value <= 4.9
.
MIT
FAQs
A light statistical package that operates on numeric Arrays.
We found that stats-lite demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.