У меня есть набор данных CSV, который я использую с dc.js (crossfilter).Уменьшить несколько косвенно заданных полей с использованием crossfilter
Date, Country 1,Country 2,Country 3,Country 4,Country 5,Country 6,Target country (...) 2014/12/11, USA, France, UAE, (...), Iraq
То, что я пытаюсь сделать, это для построения строки диаграммы с один ряд в стране. Вот мое решение, как сегодня:
var countries = ndx.dimension(function(d) {
var list = [];
list.push(d["Country 1"]);
if (d["Country 2"]) {list.push(d["Country 2"]);};
if (d["Country 3"]) {list.push(d["Country 3"]);};
if (d["Country 4"]) {list.push(d["Country 4"]);};
if (d["Country 5"]) {list.push(d["Country 5"]);};
if (d["Country 6"]) {list.push(d["Country 6"]);};
return list;
});
var countriesGroup = countries.group().reduceSum(function(d) {
return d.totalNumberOfStrikes;
});;
countryChart
.width(400).height(500)
.group(countriesGroup)
.dimension(countries)
.ordering(function(d){ return -d.value });
Но, как вы можете видеть, это не нажмет уников в списке массива. Это вызывает глупые результаты, так как каждая комбинация стран в строках CSV создает новый элемент в списке.
Что я хочу - это иметь список, содержащий каждую уникальную страну, а затем нарисовать объект в таблице строк.
Вы можете помочь? Большое спасибо!
Только проблема в том, что ваши счетчики и суммы будут завышены на любой кроме вашего странового измерения. Если вам нужно иметь дело с этой ситуацией, существуют способы определения настраиваемых группировок, которые справляются с этой проблемой. –
А, это хороший момент. Вы думаете об уменьшении объекта с полями для каждой страны? – Gordon
Я так потерян, если честно.Прошу прощения со вчерашнего дня, без каких-либо успехов :( – basbabybel