1
我有定義爲這樣一組數據:如何填寫crossfilter group.all()結果中的空白?
var hour = data.crossfilter.dimension(function(d){ return d.date.getHours() + d.date.getMinutes()/60; });
var hours = hour.group(Math.floor);
所生成的結果(hours.all()
)看起來像這樣:
[0, 124]
[1, 25]
[2, 5]
[3, 2]
[5, 339]
[6, 11648]
[7, 16334]
[8, 15919]
[9, 14078]
[10, 13816]
[11, 14646]
[12, 15079]
[13, 13718]
[14, 13947]
[15, 14055]
[16, 13995]
[17, 16166]
[18, 14958]
[19, 13991]
[20, 12769]
[21, 10638]
[22, 3939]
[23, 892]
注意到有3
之間的數據間隙,5
(4
缺少)。如何配置交叉過濾器來填補與0
相反的空白?
儘管我使用的是vanilla JavaScript,但這並不簡單。本質上問題在於確定「步長」。我已經嘗試了很多方法,儘管最終根據crossfilter組設置對值進行了硬編碼。請記住,數據步驟可以是整數,浮點數甚至日期值。 – Gajus
沒錯,那會讓事情變得具有挑戰性。很高興你明白了。下面是我用來確定給定數組是否連續的公式,儘管我使用它來確定是否應該使用'filterRange'或將數組應用於具有交叉過濾器請求#36的'filter'函數參數。可以幫助你。 (Max + step) - min === array.length * step –