Manipulating Data
Last modified: September 24, 2026
The column actions dropdown contains operations you can take to create new columns based on the current column, or just alter the current column.
Split Column
Any column can be split into two new columns, based on a provided delimiter. If a cell contains multiple instances of the given delimiter, you can choose to split the cell on either the first or last instance of the delimiter.
The data types of the resulting columns will be Text.
Join Columns
Any two columns can be concatenated into a new column, using a provided separator.
The data type of the resulting column will be Text.
Geocode
Rowboat+ and Desktop users have the option to geocode their location data. Any valid text locations within the column will be converted into numeric coordinate values that can be linked and viewed on a US or World coordinate map.
Rate limits apply.
New Column from Lambda
To create a new column based on one or more existing columns, select the columns, right-click and choose “New Column from Lambda”. Here, you can write a short JavaScript expression to be applied to the selection. The dialog will show you a preview of what the formula will produce, based on a sample of rows. One or more columns will be created, with a limit of 100 columns.
Some examples are given below.
Arithmetic:
// add numbers
a + b
// subtract numbers
b - a
// more complicated expressions
(a + b) * c / d
// get the mean
(a + b) / 2
// celsius to fahrenheit
a * 9/5 + 32
// fahrenheit to celsius
(a - 32) * 5/0
// kelvin to celsius
a - 273.15
Concatenate (join) text:
// concatenate the two with a space in between
a + " " + b
// in any order, and add your own strings
b + " " + a + ", Boston, MA" + c
Split text:
// may create multiple columns
a.split(", ")
// concatenate the 1st and 3rd words
a.split(" ")[0] + " " + a.split(" ")[2]
// concatenate the 1st and 3rd characters
a[0] + a[2]
// extract the first 4 characters
a.substring(0, 5)
Converting between numbers and strings:
// number to string
a.toString()
// string to (whole) number
parseInt(a)
// string to (decimal) number
parseFloat(a)
// padding a number
// e.g. 2114 to 02114
a.toString().padStart(5, "0")
Cleaning up numbers:
// round to the nearest whole number
Math.round(a)
// or round down
Math.floor(a)
// or round up
Math.ceil(a)
Cleaning up text:
// trim whitespace at start and end
a.trim()
// changing case to lower
a.toLowerCase()
// changing case to upper
a.toUpperCase()
Ternary expressions:
// if we have b, get the average of a and b
// otherwise, just give me a
b ? (a + b) / 2 : a
// if we have a range, split the range
// otherwise, give me the same number twice
a.includes("-") ? a.split("-") : [a, a]
Trim
All leading and trailing spaces will be removed from text entries in a column.
Single spaces between words will not be affected.
Change Case
All text entries in a column can be changed to uppercase or lowercase.
Merge and Rename
Multiple text entries can be combined and treated as a single entry.
For example, if a column contains the entries “new york”, “new york city”, or “nyc”, you could merge the three, resulting in any occurrence of those terms being renamed to “new york”.
Merged entries will automatically take the label of the most frequently occurring entry, or can be relabeled by entering a new name for the combined entries.
Revert Changes
Any “trim”, “change case”, or “merge entries” operations will be reverted, returning the data in the column to the original state.