Shape / rows ยท All operations

Mark rows

Mark rows without removing them: select, flag, star.

Status

In arcform

Not built yet

arcform does not do this yet; it would live in Brightfield's view. Its place on the roadmap

Shape of the result
one row out per row in, with columns added or changed
Level
not a step

What other tools call it

Meridian's classification; an independent blind rating agreed on 86.2% of 312 rows (exact class, version 2).

OpenRefine (4)
  • Flag rowsread 2026-09-27

    Set the flag marker on every row in the current facet selection

  • Star rowsread 2026-09-27

    Set the star marker on every row in the current facet selection

  • Unflag rowsread 2026-09-27

    Clear the flag marker on every row in the current facet selection

  • Unstar rowsread 2026-09-27

    Clear the star marker on every row in the current facet selection

VisiData (54)
  • mark-rowread 2026-09-23

    (experimental) Attach a named mark to current row

  • mark-selectedread 2026-09-23

    (experimental) Attach a named mark to selected rows

  • select-afterread 2026-09-23

    Select rows from cursor to bottom

  • select-allread 2026-09-23

    On a text canvas, select all source rows

  • select-around-nread 2026-09-23

    Also select N rows before and after each selected row

  • select-beforeread 2026-09-23

    Select rows from top to cursor

  • select-cellread 2026-09-23

    On Describe Sheet, select the source rows counted in current cell (errors, nulls)

  • select-col-regexread 2026-09-23

    Select rows where current column matches a regex

  • select-cols-regexread 2026-09-23

    Select rows where any visible column matches a regex

  • select-cursorread 2026-09-23

    Select source-sheet rows plotted inside the canvas cursor box

  • select-duplicate-rowsread 2026-09-23

    Select each row that duplicates an earlier row by key columns, or by all columns

  • select-equal-cellread 2026-09-23

    Select rows whose displayed value in current column equals current cell

  • select-equal-rowread 2026-09-23

    Select rows matching current row's displayed values in all visible columns

  • select-equal-selectedread 2026-09-23

    Select rows whose current-column value appears among the already selected rows

  • select-errorread 2026-09-23

    Select rows with an error in any column

  • select-error-colread 2026-09-23

    Select rows with an error in current column

  • select-exact-cellread 2026-09-23

    Select rows whose typed value in current column equals current cell

  • select-exact-rowread 2026-09-23

    Select rows matching current row's typed values in all visible columns

  • select-exprread 2026-09-23

    Select rows where a Python expression is truthy

  • select-firstread 2026-09-23

    On a frequency table, select the first source row of each bin

  • select-marksread 2026-09-23

    (experimental) Select rows carrying a given mark

  • select-randomread 2026-09-23

    Select a random sample of N rows

  • select-rowread 2026-09-23

    Select current row

  • select-rowsread 2026-09-23

    Select all rows

  • select-supernetsread 2026-09-23

    Select rows whose CIDR block contains a given address

  • Select rows from cursor forward to the next selected row

  • Select rows from cursor back to the previous selected row

  • select-top-cursorread 2026-09-23

    On a text canvas, select the topmost source row under the cursor

  • select-visibleread 2026-09-23

    Select source rows visible on the canvas

  • stoggle-afterread 2026-09-23

    Toggle selection of rows from cursor to bottom

  • stoggle-beforeread 2026-09-23

    Toggle selection of rows from top to cursor

  • stoggle-cursorread 2026-09-23

    Toggle selection of source rows inside the canvas cursor box

  • stoggle-marksread 2026-09-23

    (experimental) Toggle selection of rows carrying a given mark

  • stoggle-rowread 2026-09-23

    Toggle selection of current row

  • stoggle-rowsread 2026-09-23

    Toggle selection of all rows

  • stoggle-visibleread 2026-09-23

    Toggle selection of source rows visible on the canvas

  • toggle-allread 2026-09-23

    On a text canvas, toggle selection of all source rows

  • toggle-cursorread 2026-09-23

    On a text canvas, toggle selection of source rows under the cursor

  • toggle-top-cursorread 2026-09-23

    On a text canvas, toggle the topmost source row under the cursor

  • unmark-rowread 2026-09-23

    (experimental) Remove a named mark from current row

  • unmark-selectedread 2026-09-23

    (experimental) Remove a named mark from selected rows

  • unselect-afterread 2026-09-23

    Unselect rows from cursor to bottom

  • unselect-allread 2026-09-23

    On a text canvas, clear the selection on the source sheet

  • unselect-beforeread 2026-09-23

    Unselect rows from top to cursor

  • unselect-cellread 2026-09-23

    On Describe Sheet, unselect the source rows counted in current cell

  • unselect-col-regexread 2026-09-23

    Unselect rows where current column matches a regex

  • unselect-cols-regexread 2026-09-23

    Unselect rows where any visible column matches a regex

  • unselect-cursorread 2026-09-23

    Unselect source rows inside the canvas cursor box

  • unselect-exprread 2026-09-23

    Unselect rows where a Python expression is truthy

  • unselect-marksread 2026-09-23

    (experimental) Unselect rows carrying a given mark

  • unselect-rowread 2026-09-23

    Unselect current row

  • unselect-rowsread 2026-09-23

    Unselect all rows; on a frequency table also unselects their source rows

  • unselect-top-cursorread 2026-09-23

    On a text canvas, unselect the topmost source row under the cursor

  • unselect-visibleread 2026-09-23

    Unselect source rows visible on the canvas

Background

In OpenRefine, stars and flags mark specific rows for later focus, and they persist through closing and opening a project.[1] In VisiData, many commands can be finetuned to operate only on the rows that are selected.[2] In computing, a selection is a list of items on which user operations will take place.[3]

When to use it

In OpenRefine, clicking a facet value narrows the dataset temporarily to only the rows matching that facet.[1] OpenRefine's stars and flags can be used in any way, although they are designed to help flag errors and star rows of particular importance.[1] In OpenRefine, starring the matches of one facet, removing it, and starring the matches of an unrelated facet builds a custom subset from separate faceting activities.[1] In OpenRefine, starring the new matching rows of a second facet does not modify rows that are already starred.[1] Mark rows when the set you want is easier to gather from several questions in turn than to state as one condition. (Meridian's view)

In VisiData, the bulk-select-clear option, False by default, controls whether the selected rows are cleared before each new bulk selection.[4] Clear the old selection before building a new one, unless the new rows are meant to join it. (Meridian's view) In VisiData, the comma command selects rows whose display value in the current column matches the current cell, while z, matches by typed value.[2][4] When selecting rows by an equal value, decide whether the value should match as it is shown or as it is typed. (Meridian's view) Where a mark has to outlast the session or travel with the table, write it out as a column of its own. (Meridian's view)

The method

In OpenRefine, rows can be starred or flagged by hand by clicking the icons to the left of each row.[1] In OpenRefine, choosing Edit rows, then Star rows or Flag rows, from the All menu on the first column modifies all matching rows in the current subset.[1] In OpenRefine, applying stars or flags to all matching rows creates true and false facets in the Facet/Filter tab.[1] In OpenRefine, a text facet can be created on any column with the expression row.starred or row.flagged.[1]

In VisiData, s, t and u select, toggle and unselect the current row, and gs, gt and gu select, toggle and unselect all rows.[2][4] In VisiData, rows can also be selected by a regular expression matched in the current column, or by a Python expression over the visible columns.[2][4] In VisiData, on a graph, s, t and u select, toggle and unselect the rows of the underlying table that are contained within the graph's cursor.[5][4]

Brushing and linking is the connection of two or more views of the same data, such that a change to the representation in one view affects the representation in the other.[6] Brushing may, for example, highlight the selected data from one view in other connected data representations.[6] The technique and name brushing were introduced in the 1980s by Richard A. Becker and William S. Cleveland.[6] Simultaneous editing, a technique for editing all the items in a multiple selection at once, also appears in data wrangling tools, where it makes the same change to several records of the same kind in a table.[3]

Compared with the alternatives

In VisiData, a selection can be turned into a filter: gd deletes the selected rows, and the double-quote key opens a duplicate of the table with only the selected rows.[2][4] In VisiData, a duplicate opened from the selected rows holds references to the original rows, so edits made in it are reflected in the original table.[2][4] Filter when the other rows are no longer wanted; mark when they still matter, as the context the marked rows are read against. (Meridian's view)