diff --git a/function/smooth/17-smooth.js b/function/smooth/17-smooth.js index c34c04aa..67594606 100644 --- a/function/smooth/17-smooth.js +++ b/function/smooth/17-smooth.js @@ -54,6 +54,16 @@ module.exports = function(RED) { v[top].tot = v[top].tot + n - v[top].pop; value = v[top].tot / v[top].a.length; } + if (node.action === "median") { + var sortedForMedian = v[top].a.slice().sort((a, b) => a - b); + var medianIndex = Math.floor(v[top].count / 2); + if (v[top].count % 2 === 0) { + value = (v[top].sortedForMedian[v[top].medianIndex - 1] + v[top].sortedForMedian[v[top].medianIndex]) / 2; + } + else { + value = v[top].sortedForMedian[v[top].medianIndex] + } + if (node.action === "sd") { v[top].tot = v[top].tot + n - v[top].pop; v[top].tot2 = v[top].tot2 + (n*n) - (v[top].pop * v[top].pop);