Miso Dataset :: How do I bin a dataset based on a time interval?
As seen here: https://github.com/misoproject/dataset/wiki/How-Do-I...#wiki-bintime
by iros
HTML
<script src="https://raw.github.com/misoproject/dataset/master/dist/miso.ds.deps.0.2.1.js"></script>
Open the console to see the result!
JavaScript
var data = [
{ timestamp : 'Sep 03 2012 16:05:15 GMT+0200', category: 'A', value : 12 },
{ timestamp : 'Sep 05 2012 12:25:54 GMT+0200', category: 'A', value : 100 },
{ timestamp : 'Sep 06 2012 16:35:25 GMT+0200', category: 'A', value : 3 },
{ timestamp : 'Sep 06 2012 15:45:53 GMT+0200', category: 'B', value : 12 },
{ timestamp : 'Sep 07 2012 16:11:54 GMT+0200', category: 'B', value : 42 },
{ timestamp : 'Sep 07 2012 19:22:15 GMT+0200', category: 'A', value : 203 },
{ timestamp : 'Sep 07 2012 02:33:05 GMT+0200', category: 'A', value : 13 }
];
var ds = new Miso.Dataset({
data : data,
columns : [
{
name : 'timestamp',
format : "MMM DD YYYY HH:mm:ss z",
type : 'time'
}
]
});
ds.fetch().then(function() {
var byDay = ds.groupBy('timestamp', ['value'], {
preprocess : function(timestamp) {
// first extract just the day
var justDay = timestamp.format("MMM DD YYYY");
// then return it as a moment object
return moment(justDay, "MMM DD YYYY");
}
});
console.log(JSON.stringify(byDay.toJSON()));
});