Skip to content

Proposal: d3-dataframe #15

Description

@alexlenail

D3 could come with a simple representation of matrix data.

Earlier sketch of roughly what this would look like:

matrix = {
		values: [[1, 2], [3, 4]], // sorted row-wise by default

    rows_iter:         function () { return this.values },
    columns_iter:      function () { return iterator_over_the_transpose_of(this.values) },
    flat_rows_iter:    function () { return iterator_over_flattened(this.values) },
    flat_columns_iter: function () { return iterator_over_the_flattened_transpose_of(this.values) },

    rows:              function () { return copy(this.values) },
    columns:           function () { return copy(transpose(this.values)) },
    flat_rows:         function () { return copy(flattened(this.values)) },
    flat_columns:      function () { return copy(flattened(transpose(this.values))) },

  	transpose: function() {
      return {
        values: transpose(this.values),

        rows_iter:         function () { return this.values },
        columns_iter:      function () { return iterator_over_the_transpose_of(this.values) },
        flat_rows_iter:    function () { return iterator_over_flattened(this.values) },
        flat_columns_iter: function () { return iterator_over_the_flattened_transpose_of(this.values) },

        rows:              function () { return copy(this.values) },
        columns:           function () { return copy(transpose(this.values)) },
        flat_rows:         function () { return copy(flattened(this.values)) },
        flat_columns:      function () { return copy(flattened(transpose(this.values))) },

      }
    },
};

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions