2017-08-17 123 views
2

我是新來的dc.js。我試圖用它來過濾多個條件下的數據集。我可以使用下面的代碼來過濾一個條件(類型)。dc.js:多維過濾器

var psv = d3.dsvFormat("|"); 
var experiments = psv.parse("time|userId|type|version\n" + data); 
var ndx = crossfilter(experiments); 
var typeDim = ndx.dimension(function(d) { return d["type"]}); 
var result = typeDim.filter(targetType).top(GLOBAL.MAX_FEEDBACK_COUNT); 

我怎麼能申請另一個維度過濾條件的result?像過濾userId? 在此先感謝。

回答

1

混淆的一個常見原因:.filter不會返回過濾的數據。它將過濾器應用於有狀態的維度。然後dimension.top()group.all()是從交叉過濾器檢索原始和彙總數據的功能。

如果您想應用其他過濾器,通常會爲其創建另一個維度,例如,一個鍵入userId。然後交叉過濾器實例將在兩個過濾器上被過濾。

雖然:請注意:一個交叉過濾組(您通常閱讀彙總的數據)does not observe its own dimension's filters。令人困惑的是,dimension.top does observe this dimension's filter