text: import "../selection/filter";
  import "transition";
  
  d3_transitionPrototype.filter = function(filter) {
    var subgroups = [],
        subgroup,
        group,
        node;
  
    if (typeof filter !== "function") filter = d3_selection_filter(filter);
  
    for (var j = 0, m = this.length; j < m; j++) {
      subgroups.push(subgroup = []);
      for (var group = this[j], i = 0, n = group.length; i < n; i++) {
        if ((node = group[i]) && filter.call(node, node.__data__, i, j)) {
          subgroup.push(node);
        }
      }
    }
  
    return d3_transition(subgroups, this.id);
  };
  