JavaScript
var data = [1731.8,292.7,254.7,247.1,197,180.4,168.8,155.6,127,114.7,107.2,99.3,95.3,92.8,66.1,63.2,63.1,61.9,61,49.7,47,43,42.3,37.5,37.4,35.8,34.1,34,30.4,29.3,28.1,27.4,27.2,27.2,27.1,27,27,26.5,23.7,23.6,23.2,21.7,21.7,21.3,21.1,19.1,19.1,18.8,18.6,17.5,17.3,17.2,16.3,15.4,15.4,15.1,14.2,14.1,12.7,12.5,11.4,10.9,9.9,9.8,9.8,9.7,9.2,8.9,8.8,8.8,7.9,6.3];
var stats = {
mean: function(arr){
var len = arr.length,
sum = _.reduce(arr, function(memo, num){ return memo + num; }, 0),
mean = sum / len
return mean;
},
headTail: function(arr){
var data_min = _.min(arr),
mean = this.mean(arr),
bins = [data_min];
while (arr.length > 1) {
arr = _.filter(arr, function (d) { return d > mean });
mean = this.mean(arr);
bins.push(mean);
};
return bins;
}
};
var thresholds = stats.headTail(data);
console.log(thresholds);