# Split

**`Split`** is to separate a single column into multiple columns based on a given string or character. Suppose you have a date column in a "yyyy-mm-dd" format, and you want to separate year, month and day into different columns. You can use **`Split`** and specify "-" as the separator. Then, the action removes "-" and breaks down "2021-04-30" into three parts, "2021", "04", and "30". Each part becomes a new column.

| date       | date\_split\_1 | date\_split\_2 | date\_split\_3 |
| ---------- | -------------- | -------------- | -------------- |
| 2021-04-30 | 2021           | 04             | 30             |

**`Split`** can be used for any type of data (such as string, integer, date, etc.). However, no matter what type of data the original column is, the resulting columns turn out to be string columns and appear next to the original column.

There are four elements under the **`Split`** action in Acho:

* **Column to split**

  Click the dropdown menu to select a column that you want to split. It includes all column names that exist in your table. You can only choose one column at each time.
* **Direction**

  Determine where the action starts to extract the values. Directions lead to different orders of the resulting columns and extract different values based on the number of columns that you want to split. There are two options here:

  * **First:** to select the number of values from the beginning. The below example is to extract the first two substrings.

  | date       | date\_split\_1 | date\_split\_2 |
  | ---------- | -------------- | -------------- |
  | 2021-04-30 | 2021           | 04             |

  * **Last:** to select the number of values from the end. The below example is to extract the last two substrings.

  | date       | date\_split\_1 | date\_split\_2 |
  | ---------- | -------------- | -------------- |
  | 2021-04-30 | 30             | 04             |
* **Split by**

  Specify a value as a separator. You can type in any values here,, such as an integer, a character, or a word)
* **Number of columns**

  Specify how many values you want to extract from the original column. The minimum value is 2.

![Elements in the Split action](https://3574406564-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MB_fx7PCUqvFEdrucJC%2F-MZnUiPsWU_eWOlicK_Y%2F-MZng6SgijrDXC22Ugiw%2Fimage-20210430171149107.png?alt=media\&token=3e6850c3-fd2d-4a39-8e9e-0d82e3987ea6)

## **Special cases**

* **There is no value before or after the separator.** \
  For example, suppose you want to split the `date` column into two columns and set the separator as "2021". Since there is no value before "2021", the first column will be `null` and the rest of the strings are placed in the second column. (To deal with `nulls`, You can use `replace nulls`)

| date       | date\_split\_1 | date\_split\_2 |
| ---------- | -------------- | -------------- |
| 2021-04-30 | null           | -04-30         |

* **The number of values that you want to have is more than the number of values that you can split.** \
  For example, suppose you want to split the `date` column into 3 columns, and set the separator as "4". Since there is only one "4" in the string, it can only split the string into two columns, "2021-0" and "-30". Thus, the third column will be `null`. (To deal with `nulls`, You can use `replace nulls` in [Cleanse](https://docs.acho.io/acho-studio/data-prep-projects/applying-actions/..#07-cleanse))

| date       | date\_split\_1 | date\_split\_2 | date\_split\_3 |
| ---------- | -------------- | -------------- | -------------- |
| 2021-04-30 | 2021-0         | -30            | null           |

* **The string doesn't contain the separator.** \
  For example, suppose you want to split the `date` column into 3 columns and set the separator as "5". Since the system cannot find the "5" in "2021-04-30", it will put the entire string in the first column and make the rest of the columns be `nulls`.

| date       | date\_split\_1 | date\_split\_2 | date\_split\_3 |
| ---------- | -------------- | -------------- | -------------- |
| 2021-04-30 | 2021-04-30     | null           | null           |

###
