私はこれに3日間苦労してきましたが、運がありません。
いくつかのフィルターを適用したら、reduceCount 値を取得したいと思います。これは基本的なことだと思いますが、クロスフィルターについて説明しているすべてのチュートリアルまたはブログ、ドキュメントはまったく同じ例を示しています :(
例: ビザのみを取得するためにどのように国の数を取得できますか?
var payments = crossfilter([
{date: "2011-11-14T16:17:54Z", country: 'DE', total: 190, tip: 100, type: "tab"},
{date: "2011-11-14T16:20:19Z", country: 'MX', total: 190, tip: 100, type: "tab"},
{date: "2011-11-14T16:28:54Z", country: 'US', total: 300, tip: 200, type: "visa"},
{date: "2011-11-14T16:28:54Z", country: 'US', total: 200, tip: 200, type: "visa"},
{date: "2011-11-14T16:30:43Z", country: 'FR', total: 90, tip: 0, type: "tab"},
{date: "2011-11-14T16:48:46Z", country: 'CA', total: 90, tip: 0, type: "tab"},
{date: "2011-11-14T16:53:41Z", country: 'MX', total: 90, tip: 0, type: "tab"},
{date: "2011-11-14T16:54:06Z", country: 'ES', total: 100, tip: 0, type: "cash"},
{date: "2011-11-14T16:58:03Z", country: 'US', total: 90, tip: 0, type: "tab"},
{date: "2011-11-14T17:07:21Z", country: 'CA', total: 90, tip: 0, type: "tab"},
{date: "2011-11-14T17:22:59Z", country: 'US', total: 90, tip: 0, type: "tab"},
{date: "2011-11-14T17:25:45Z", country: 'ES', total: 200, tip: 0, type: "cash"},
{date: "2011-11-14T17:29:52Z", country: 'FR', total: 200, tip: 100, type: "visa"}
]);
var typeDimension = payments.dimension(function(d) { return d.type; });
var totalDimension = payments.dimension(function(d) { return d.total; });
var countryDimension = payments.dimension(function(d) { return d.country; });
var totalGroup = totalDimension.group();
var typeGroup = typeDimension.group();
var countryGroup = countryDimension.group();
var totalSize = totalGroup.reduceCount().size(); // 5 Distinct total amounts
var typeSize = typeGroup.reduceCount().size(); // 3 Distinct types
var countrySize = countryGroup.reduceCount().size(); // 6 Distinct countryes
var visaFilter = typeDimension.filter('visa'); // Filter by Visa type
payments.groupAll().reduceCount().value(); // Ok We have 3 payments
countryDimension.top(Infinity); // This will return the 3 payment objects
countryDimension.group().reduceCount().size(); // Still shows 5 Distinct amounts
countryDimension.group(function(d, v){console.log(d, v); return d;});
countryDimension.group().all(); // Will return group by countryes and number of payment on each country
どうもありがとう!