

# Text functions
<a name="recipe-actions.functions.text"></a>

Following, find reference topics for text functions that work with recipe actions.

**Topics**
+ [CHAR](recipe-actions.functions.CHAR.md)
+ [ENDS\$1WITH](recipe-actions.functions.ENDS_WITH.md)
+ [EXACT](recipe-actions.functions.EXACT.md)
+ [FIND](recipe-actions.functions.FIND.md)
+ [LEFT](recipe-actions.functions.LEFT.md)
+ [LEN](recipe-actions.functions.LEN.md)
+ [LOWER](recipe-actions.functions.LOWER.md)
+ [MERGE\$1COLUMNS\$1AND\$1VALUES](recipe-actions.functions.MERGE.md)
+ [PROPER](recipe-actions.functions.PROPER.md)
+ [REMOVE\$1SYMBOLS](recipe-actions.functions.REMOVE_SYMBOLS.md)
+ [REMOVE\$1WHITESPACE](recipe-actions.functions.REMOVE_WHITESPACE.md)
+ [REPEAT\$1STRING](recipe-actions.functions.REPEAT.md)
+ [RIGHT](recipe-actions.functions.RIGHT.md)
+ [RIGHT\$1FIND](recipe-actions.functions.RIGHT_FIND.md)
+ [STARTS\$1WITH](recipe-actions.functions.STARTS_WITH.md)
+ [STRING\$1GREATER\$1THAN](recipe-actions.functions.STRING_GREATER_THAN.md)
+ [STRING\$1GREATER\$1THAN\$1EQUAL](recipe-actions.functions.STRING_GREATER_THAN_EQUAL.md)
+ [STRING\$1LESS\$1THAN](recipe-actions.functions.STRING_LESS_THAN.md)
+ [STRING\$1LESS\$1THAN\$1EQUAL](recipe-actions.functions.STRING_LESS_THAN_EQUAL.md)
+ [SUBSTRING](recipe-actions.functions.SUBSTRING.md)
+ [TRIM](recipe-actions.functions.TRIM.md)
+ [UNICODE](recipe-actions.functions.UNICODE.md)
+ [UPPER](recipe-actions.functions.UPPER.md)

# CHAR
<a name="recipe-actions.functions.CHAR"></a>

Returns in a new column the Unicode character for each integer in the source column, or for a custom integer value.

**Parameters**
+ `sourceColumn` – The name of an existing column.
+ `value` – An integer that represents a Unicode value.
+ `targetColumn` – The name of the new column to be created.

**Note**  
You can specify either `sourceColumn` or `value`, but not both.

**Examples**  
  

```
{
    "RecipeAction": {
        "Operation": "CHAR",
        "Parameters": {
            "sourceColumn": "age",
            "targetColumn": "age_char"
        }
    }
}
```
  

```
{
    "RecipeAction": {
        "Operation": "CHAR",
        "Parameters": {
            "value": 42,
            "targetColumn": "asterisk"
        }
    }
}
```

# ENDS\$1WITH
<a name="recipe-actions.functions.ENDS_WITH"></a>

Returns `true` in a new column if a specified number of rightmost characters, or custom string, matches a pattern.

**Parameters**
+ `sourceColumn` – The name of an existing column.
+ `value` – A character string to evaluate.
+ `pattern` – A regular expression that must match the end of the string.
+ `targetColumn` – The name of the new column to be created.

**Note**  
You can specify either `sourceColumn` or `value`, but not both.

**Example**  
  

```
{
    "RecipeAction": {
        "Operation": "ENDS_WITH",
        "Parameters": {
            "sourceColumn": "nationality",
            "pattern": "[Ss]",
            "targetColumn": "nationality_ends_with"
        }
    }
}
```

# EXACT
<a name="recipe-actions.functions.EXACT"></a>

Creates a new column populated with one of the following:
+ `True` if one string in a column (or value) exactly matches another string in a different column (or value).
+ `False` if there is no match.

**Parameters**
+ `sourceColumn1` – The name of an existing column.
+ `sourceColumn2` – The name of an existing column.
+ `value1` – A character string to evaluate.
+ `value2` – A character string to evaluate.
+ `targetColumn` – The name of the new column to be created.

**Note**  
You can specify only one of the following combinations:  
Both of `sourceColumnN`.
One of `sourceColumnN` and one of `valueN`.
Both of `valueN`.

**Example**  
  

```
{
    "RecipeAction": {
        "Operation": "EXACT",
        "Parameters": {
            "sourceColumn1": "nationality",
            "value2": "Argentina",
            "targetColumn": "nationality_exact"
        }
    }
}
```

# FIND
<a name="recipe-actions.functions.FIND"></a>

Searching left to right, finds strings that match a specified string from the source column or from a custom value, and returns the result in a new column. 

**Parameters**
+ `sourceColumn` – The name of an existing column.
+ `pattern` – A regular expression to search for.
+ `position` – The character position to begin with, from the left end of the string.
+ `ignoreCase` – If `true`, ignore differences of case (between uppercase and lowercase) among letters. To enforce strict matching, use `false` instead.
+ `targetColumn` – The name of the new column to be created.

**Example**  
  

```
{
    "RecipeAction": {
        "Operation": "FIND",
        "Parameters": {
            "sourceColumn": "city",
            "pattern": "[AEIOU]",
            "position": "1",
            "ignoreCase": "false",
            "targetColumn": "begins_with_a_vowel"
        }
    }
}
```

# LEFT
<a name="recipe-actions.functions.LEFT"></a>

Given a number of characters, takes the leftmost number of characters in the string from the source column or custom string, and returns the specified number of leftmost characters in a new column.

**Parameters**
+ `sourceColumn` – The name of an existing column.
+ `value` – A character string to evaluate.
+ `position` – The character position to begin with, from the left end of the string.
+ `targetColumn` – The name of the new column to be created.

**Note**  
You can specify either `sourceColumn` or `value`, but not both.

**Examples**  
  

```
{
    "RecipeAction": {
        "Operation": "LEFT",
        "Parameters": {
            "position": "3",
            "sourceColumn": "city",
            "targetColumn": "city_left"
        }
    }
}
```
  

```
{
    "RecipeAction": {
        "Operation": "LEFT",
        "Parameters": {
            "position": "5",
            "value": "How now brown cow",
            "targetColumn": "how_now_5_left_chars"
        }
    }
}
```

# LEN
<a name="recipe-actions.functions.LEN"></a>

Returns in a new column the length of strings from the source column or of custom strings.

**Parameters**
+ `sourceColumn` – The name of an existing column.
+ `value` – A character string to evaluate.
+ `targetColumn` – The name of the new column to be created.

**Note**  
You can specify either `sourceColumn` or `value`, but not both.

**Examples**  
  

```
{
    "RecipeAction": {
        "Operation": "LEN",
        "Parameters": {
            "sourceColumn": "last_name",
            "targetColumn": "last_name_len"
        }
    }
}
```
  

```
{
    "RecipeAction": {
        "Operation": "LEN",
        "Parameters": {
            "value": "Hello",
            "targetColumn": "hello_len"
        }
    }
}
```

# LOWER
<a name="recipe-actions.functions.LOWER"></a>

Converts all alphabetical characters from the strings in the source column or custom strings to lowercase, and returns the result in a new column.

**Parameters**
+ `sourceColumn` – The name of an existing column.
+ `value` – A character string to evaluate.
+ `targetColumn` – The name of the new column to be created.

**Note**  
You can specify either `sourceColumn` or `value`, but not both.

**Examples**  
  

```
{
    "RecipeAction": {
        "Operation": "LOWER",
        "Parameters": {
            "sourceColumn": "last_name",
            "targetColumn": "last_name_lower"
        }
    }
}
```
  

```
{
    "RecipeAction": {
        "Operation": "LOWER",
        "Parameters": {
            "value": "GOODBYE",
            "targetColumn": "goodbye_lower"
        }
    }
}
```

# MERGE\$1COLUMNS\$1AND\$1VALUES
<a name="recipe-actions.functions.MERGE"></a>

Concatenates the strings in the source columns and returns the result in a new column. You can insert a delimiter between the merged values.

**Parameters**
+ `sourceColumns` – The names of two or more existing columns, in JSON-encoded format.
+ `delimiter` – Optional. One or more characters to place between each two source column values. 
+ `targetColumn` – The name of the new column to be created.

**Example**  
  

```
{
    "RecipeAction": {
        "Operation": "MERGE_COLUMNS_AND_VALUES",
        "Parameters": {
            "sourceColumns": "[\"last_name\",\"birth_date\"]",
            "delimiter": " was born on: ",
            "targetColumn": "merged_column"
        }
    }
}
```

# PROPER
<a name="recipe-actions.functions.PROPER"></a>

Converts all alphabetical characters from the strings in the source column or custom values to proper case, and returns the result in a new column. 

In *proper case,* also called capital case, the first letter of each word is capitalized and the rest of the word is transformed to lowercase. An example is: The Quick Brown Fox Jumped Over The Fence 

**Parameters**
+ `sourceColumn` – The name of an existing column.
+ `value` – A character string to evaluate.
+ `targetColumn` – The name of the new column to be created.

**Note**  
You can specify either `sourceColumn` or `value`, but not both.

**Examples**  
  

```
{
    "RecipeAction": {
        "Operation": "PROPER",
        "Parameters": {
            "sourceColumn": "first_name",
            "targetColumn": "first_name_proper"
        }
    }
}
```
  

```
{
    "RecipeAction": {
        "Operation": "PROPER",
        "Parameters": {
            "value": "MR. H. SMITH, ESQ.",
            "targetColumn": "formal_name_proper"
        }
    }
}
```

# REMOVE\$1SYMBOLS
<a name="recipe-actions.functions.REMOVE_SYMBOLS"></a>

Removes characters that aren't letters, numbers, accented Latin characters, or white space from the strings in the source column or custom strings, and returns the result in a new column.

**Parameters**
+ `sourceColumn` – The name of an existing column.
+ `value` – A character string to evaluate.
+ `targetColumn` – The name of the new column to be created.

**Note**  
You can specify either `sourceColumn` or `value`, but not both.

**Examples**  
  

```
{
    "RecipeAction": {
        "Operation": "REMOVE_SYMBOLS",
        "Parameters": {
            "sourceColumn": "info_url",
            "targetColumn": "info_url_remove_symbols"
        }
    }
}
```
  

```
{
    "RecipeAction": {
        "Operation": "REMOVE_SYMBOLS",
        "Parameters": {
            "value": "$&#$&HEY!#@@",
            "targetColumn": "without_symbols"
        }
    }
}
```

# REMOVE\$1WHITESPACE
<a name="recipe-actions.functions.REMOVE_WHITESPACE"></a>

Removes white space from the strings in the source column or custom strings, and returns the result in a new column.

**Parameters**
+ `sourceColumn` – The name of an existing column.
+ `value` – A character string to evaluate.
+ `targetColumn` – The name of the new column to be created.

**Note**  
You can specify either `sourceColumn` or `value`, but not both.

**Examples**  
  

```
{
    "RecipeAction": {
        "Operation": "REMOVE_WHITESPACE",
        "Parameters": {
            "sourceColumn": "job_desc",
            "targetColumn": "job_desc_remove_whitespace"
        }
    }
}
```
  

```
{
    "RecipeAction": {
        "Operation": "REMOVE_WHITESPACE",
        "Parameters": {
            "value": "This string has spaces in it",
            "targetColumn": "string_without_spaces"
        }
    }
}
```

# REPEAT\$1STRING
<a name="recipe-actions.functions.REPEAT"></a>

Repeats the strings in the source column or custom input value a specified number of times, and returns the result in a new column.

**Parameters**
+ `sourceColumn` – The name of an existing column.
+ `value` – A character string to evaluate.
+ `count` – The number of times to repeat the string.
+ `targetColumn` – The name of the new column to be created.

**Note**  
You can specify either `sourceColumn` or `value`, but not both.

**Examples**  
  

```
{
    "RecipeAction": {
        "Operation": "REPEAT_STRING",
        "Parameters": {
            "count": 3,
            "sourceColumn": "last_name",
            "targetColumn": "last_name_repeat_string"
        }
    }
}
```
  

```
{
    "RecipeAction": {
        "Operation": "REPEAT_STRING",
        "Parameters": {
            "count": 80,
            "value": "*",
            "targetColumn": "80_stars"
        }
    }
}
```

# RIGHT
<a name="recipe-actions.functions.RIGHT"></a>

Given a number of characters, takes the rightmost number of characters in the strings from the source column or custom strings, and returns the specified number of rightmost characters in a new column.

**Parameters**
+ `sourceColumn` – The name of an existing column.
+ `value` – A character string to evaluate.
+ `position` – The character position to begin with, from the right side of the string.
+ `targetColumn` – The name of the new column to be created.

**Note**  
You can specify either `sourceColumn` or `value`, but not both.

**Examples**  
  

```
{
    "RecipeAction": {
        "Operation": "RIGHT",
        "Parameters": {
            "sourceColumn": "nationality",
            "position": "3",
            "targetColumn": "nationality_right"
        }
    }
}
```
  

```
{
    "RecipeAction": {
        "Operation": "RIGHT",
        "Parameters": {
            "value": "United States of America",
            "position": "7",
            "targetColumn": "usa_right"
        }
    }
}
```

# RIGHT\$1FIND
<a name="recipe-actions.functions.RIGHT_FIND"></a>

Searching right to left, finds strings that match a specified string from the source column or from a custom value, and returns the result in a new column. 

**Parameters**
+ `sourceColumn` – The name of an existing column.
+ `pattern` – A regular expression to search for.
+ `position` – The character position to begin with, from the right end of the string.
+ `ignoreCase` – If `true`, ignore differences of case (between uppercase and lowercase) among letters. To enforce strict matching, use `false` instead.
+ `targetColumn` – The name of the new column to be created.

**Example**  
  

```
{
    "RecipeAction": {
        "Operation": "RIGHT_FIND",
        "Parameters": {
            "sourceColumn": "nationality",
            "pattern": "s",
            "position": "1",
            "ignoreCase": "true",
            "targetColumn": "ends_with_an_s"
        }
    }
}
```

# STARTS\$1WITH
<a name="recipe-actions.functions.STARTS_WITH"></a>

Returns `true` in a new column if a specified number of leftmost characters, or custom string, matches a pattern.

**Parameters**
+ `sourceColumn` – The name of an existing column.
+ `value` – A character string to evaluate.
+ `pattern` – A regular expression that must match the start of the string.
+ `targetColumn` – The name of the new column to be created.

**Note**  
You can specify either `sourceColumn` or `value`, but not both.

**Example**  
  

```
{
    "RecipeAction": {
        "Operation": "STARTS_WITH",
        "Parameters": {
            "sourceColumn": "nationality",
            "pattern": "[AEIOU]",
            "targetColumn": "nationality_starts_with"
        }
    }
}
```

# STRING\$1GREATER\$1THAN
<a name="recipe-actions.functions.STRING_GREATER_THAN"></a>

Creates a new column populated with one of the following:
+ `True` if one string in a column (or value) is greater than another string in a different column (or value).
+ `False` if there is no match.

**Parameters**
+ `sourceColumn1` – The name of an existing column.
+ `sourceColumn2` – The name of an existing column.
+ `value1` – A character string to evaluate.
+ `value2` – A character string to evaluate.
+ `targetColumn` – The name of the new column to be created.

**Note**  
You can specify only one of the following combinations:  
Both of `sourceColumnN`.
One of `sourceColumnN` and one of `valueN`.
Both of `valueN`.

**Example**  
  

```
{
    "RecipeAction": {
        "Operation": "STRING_GREATER_THAN",
        "Parameters": {
            "sourceColumn1": "first_name",
            "sourceColumn2": "last_name",
            "targetColumn": "string_greater_than"
        }
    }
}
```

# STRING\$1GREATER\$1THAN\$1EQUAL
<a name="recipe-actions.functions.STRING_GREATER_THAN_EQUAL"></a>

Creates a new column populated with one of the following:
+ `True` if one string in a column (or value) is greater than or equal to another string in a different column (or value).
+ `False` if there is no match.

**Parameters**
+ `sourceColumn1` – The name of an existing column.
+ `sourceColumn2` – The name of an existing column.
+ `value1` – A character string to evaluate.
+ `value2` – A character string to evaluate.
+ `targetColumn` – The name of the new column to be created.

**Note**  
You can specify only one of the following combinations:  
Both of `sourceColumnN`.
One of `sourceColumnN` and one of `valueN`.
Both of `valueN`.

**Example**  
  

```
{
    "RecipeAction": {
        "Operation": "STRING_GREATER_THAN_EQUAL",
        "Parameters": {
            "sourceColumn1": "nationality",
            "targetColumn": "string_greater_than_equal",
            "value2": "s"
        }
    }
}
```

# STRING\$1LESS\$1THAN
<a name="recipe-actions.functions.STRING_LESS_THAN"></a>

Creates a new column populated with one of the following:
+ `True` if one string in a column (or value) is less than another string in a different column (or value).
+ `False` if there is no match.

**Parameters**
+ `sourceColumn1` – The name of an existing column.
+ `sourceColumn2` – The name of an existing column.
+ `value1` – A character string to evaluate.
+ `value2` – A character string to evaluate.
+ `targetColumn` – The name of the new column to be created.

**Note**  
You can specify only one of the following combinations:  
Both of `sourceColumnN`.
One of `sourceColumnN` and one of `valueN`.
Both of `valueN`.

**Example**  
  

```
{
    "RecipeAction": {
        "Operation": "STRING_LESS_THAN",
        "Parameters": {
            "sourceColumn1": "first_name",
            "sourceColumn2": "last_name",
            "targetColumn": "string_less_than"
        }
    }
}
```

# STRING\$1LESS\$1THAN\$1EQUAL
<a name="recipe-actions.functions.STRING_LESS_THAN_EQUAL"></a>

Creates a new column populated with one of the following:
+ `True` if one string in a column (or value) is less than or equal to another string in a different column (or value).
+ `False` if there is no match.

**Parameters**
+ `sourceColumn1` – The name of an existing column.
+ `sourceColumn2` – The name of an existing column.
+ `value1` – A character string to evaluate.
+ `value2` – A character string to evaluate.
+ `targetColumn` – The name of the new column to be created.

**Note**  
You can specify only one of the following combinations:  
Both of `sourceColumnN`.
One of `sourceColumnN` and one of `valueN`.
Both of `valueN`.

**Example**  
  

```
{
    "RecipeAction": {
        "Operation": "STRING_LESS_THAN_EQUAL",
        "Parameters": {
            "sourceColumn1": "first_name",
            "targetColumn": "string_less_than_equal",
            "value2": "s"
        }
    }
}
```

# SUBSTRING
<a name="recipe-actions.functions.SUBSTRING"></a>

Returns in a new column some or all of the specified strings in the source column, based on the user-defined starting and ending index values.

**Parameters**
+ `sourceColumn` – The name of an existing column.
+ `startPosition` – The character position to begin with, from the left end of the string.
+ `endPosition` – The character position to end with, from the left end of the string.
+ `targetColumn` – The name of the new column to be created.

**Note**  
You can specify either `sourceColumn` or `value`, but not both.

**Example**  
  

```
{
    "RecipeAction": {
        "Operation": "SUBSTRING",
        "Parameters": {
            "sourceColumn": "last_name",
            "startPosition": "5",
            "endPosition": "8",
            "targetColumn": "chars_5_through_8"
        }
    }
}
```

# TRIM
<a name="recipe-actions.functions.TRIM"></a>

Removes leading and trailing white space from the strings in the source column or custom strings, and returns the result in a new column. Spaces between words aren't removed.

**Parameters**
+ `sourceColumn` – The name of an existing column.
+ `value` – A character string to evaluate.
+ `targetColumn` – The name of the new column to be created.

**Note**  
You can specify either `sourceColumn` or `value`, but not both.

**Examples**  
  

```
{
    "RecipeAction": {
        "Operation": "TRIM",
        "Parameters": {
            "sourceColumn": "nationality",
            "targetColumn": "nationality_trim"
        }
    }
}
```
  

```
{
    "RecipeAction": {
        "Operation": "TRIM",
        "Parameters": {
            "value": "   This string should be trimmed       ",
            "targetColumn": "string_trimmed"
        }
    }
}
```

# UNICODE
<a name="recipe-actions.functions.UNICODE"></a>

Returns in a new column the Unicode index value for the first character of the strings in the source column or for custom strings.

**Parameters**
+ `sourceColumn` – The name of an existing column.
+ `value` – A character string to evaluate.
+ `targetColumn` – The name of the new column to be created.

**Note**  
You can specify either `sourceColumn` or `value`, but not both.

**Examples**  
  

```
{
    "RecipeAction": {
        "Operation": "UNICODE",
        "Parameters": {
            "sourceColumn": "first_name",
            "targetColumn": "first_name_unicode"
        }
    }
}
```
  

```
{
    "RecipeAction": {
        "Operation": "UNICODE",
        "Parameters": {
            "value": "?",
            "targetColumn": "sixty_three"
        }
    }
}
```

# UPPER
<a name="recipe-actions.functions.UPPER"></a>

Converts all alphabetical characters from the strings in the source column or custom strings to uppercase, and returns the result in a new column.

**Parameters**
+ `sourceColumn` – The name of an existing column.
+ `value` – A character string to evaluate.
+ `targetColumn` – The name of the new column to be created.

**Note**  
You can specify either `sourceColumn` or `value`, but not both.

**Examples**  
  

```
{
    "RecipeAction": {
        "Operation": "UPPER",
        "Parameters": {
            "sourceColumn": "last_name",
            "targetColumn": "last_name_upper"
        }
    }
}
```
  

```
{
    "RecipeAction": {
        "Operation": "UPPER",
        "Parameters": {
            "value": "a string of lowercase letters",
            "targetColumn": "string_upper"
        }
    }
}
```