# D3 Crossfilter Examples

Here is my learning process for getting to grips with crossfilter.

The data is a subset of data on the effects of flouridation. DMFT is a count of Decayed, Missing or Filled Teeth.

### Dimension - Simple

```test ```

### Dimension

Dimension effectively sorting by column. Top giving highest first by default

Country Dimension - display all

``` var cf.country = cf.dimension(function(d) { return d.Country; }); output cf.country.top(Infinity) ```

Year Dimension - display highest 4

``` var cf.year = cf.dimension(function(d) { return d.Year; }); output cf.year.top(4) ```

DMFT Dimension - display highest 4

``` var cf.dmft = cf.dimension(function(d) { return d.DMFT; }); output cf.dmft.top(4) ```

### Filter

Add a filter to the dimension - just Ireland

``` var f1 = cf.country.filterExact("Ireland"); output f1.top(Infinity) ```

Filters are cumulative, adding a filter for year for 1990-2000 gives all Ireland records for the year range. Note filterExact seems to act like filterRange if a list is passed.

``` var f2 = cf.year.filterExact([1990,2000]); output f2.top(Infinity) ```

To get all records for year for 1990-2000, clear the filter for country

``` cf.country.filterAll() var f3 = cf.year.filterRange([1990,2000]); output f3.top(Infinity) ```

Range selects greater than or equal to min and less than max, range reduced to 1993-1997

``` cf.country.filterAll() var f3 = cf.year.filterRange([1993,1997]); output f3.top(Infinity) ```

Simple dimension and group gives count of items in each group.

``` var d1 = cf.dimension(function(d) { return d.Country; }); var f1 = d1.group(); output f1.top(Infinity) ```