gatherDataset = (data, indices) => {
  const {fields, columns} = data;
  return {
    columns: indices.map(colId => columns[colId]),
    fields: indices.map(colId => fields[colId]),
  };
}
get sub dataset by column ids
@param {Object} data contains {columns, fields}
@param {Array<Number>} indices array of ids indicating which columns to choose from