# R union Function | 3 Example Codes (Two Vectors, Data Frames & Lists)

**Basic R Syntax:**

union(x1, x2)

In R, the union function returns all values that appear in at least one of two data objects (usually vectors). Each value is returned only once. The basic syntax for the union R command is shown above.

In this article, I’m going to illustrate the usage of the union function on the basis of **3 examples**. Let’s start right away…

## Example 1: Union of Two Vectors in R

Let’s begin with two vectors – the simplest way of using union in R. Consider the following two vectors as example:

x1 <- c(1, 2, 3, 4, 5, 6, 6, 6, 6) # Example vector 1 x2 <- c(8, 9) # Example vector 2

Keep in mind that the vector X1 consists of the values 1-6; and the vector X2 consists of the values 8-9 (7 is missing). Now, let’s apply the union function:

union(x1, x2) # R union of two vectors # 1 2 3 4 5 6 8 9

Beside 7 (the value which didn’t appear in any of the two vectors), the R union function returns all values from 1-9. In other words, the function returns all values that appear at least once either in X1 or X2.

**Note:** The value 6 is returned only once, even though it appears several times in X1.

In case you need some further explanations on the previous R syntax, you may have a look at the following video of my YouTube channel:

## Example 2: Union of Two Data Frames

The union command can also be used for the unification of two data frames. Let’s create two data frames first:

data_x <- data.frame(x1 = c(4, 7, 8), # Data frame 1 x2 = c(5, 5, 5)) # x1 x2 # 4 5 # 7 5 # 8 5 data_y <- data.frame(y1 = c(2, 3, 4), # Data frame 2 y2 = c(5, 5, 5)) # y1 y2 # 2 5 # 3 5 # 4 5

Note that the second column of the two data tables is equal (i.e. X2 = Y2). Now, let’s apply the union function to these two data frames:

union(data_x, data_y) # R union two data frames

**Graphic 1: RStudio Console Output after Applying union() to Two Data Frames.**

Graphic 1 shows the output of the RStudio console. The output is a list and each element of the list consists of the values of one column of the two data frames:

- List element 1 consists of the values of the first column of data_x.
- List element 2 consists of the values of the second column of data_x.
- List element 3 consists of the values of the first column of data_y.

The second column of data_y is missing, since it is identical to the second column of data_x (i.e. X2).

If you want to convert the list back to the data.frame format, you can use the following R syntax:

union_xy <- union(data_x, data_y) # Store union of data frames unlist_xy <- unlist(union_xy) # Unlist union of data frames data_xy <- data.frame( # Convert list to data.frame matrix(unlist_xy, ncol = length(union_xy))) data_xy # X1 X2 X3 # 4 5 2 # 7 5 3 # 8 5 4

More information on the used functions can be found here:

## Example 3: Union of List Elements

It is also possible to use the R union function for two lists. Let’s first create two lists in R:

list_1 <- list() # Create example list 1 list_1[[1]] <- c(1, 2, 3) list_1[[2]] <- c(5, 5, 5) list_2 <- list() # Create example list 2 list_2[[1]] <- c(1, 2, 3) list_2[[2]] <- c(6, 6, 6)

**Note:** The first element of both lists is equal (i.e. list_1[[1]] == list_2[[1]]).

Now, let’s apply the union function to our 2 lists:

union(list_1, list_2) # R union two lists

**Graphic 2: RStudio Console Output after Applying union() to Two Lists.**

Graphic 2 shows the output of the RStudio console after the application of union to two lists. The output is also a list object that consists of the first two list elements of list_1 as well as of the second list element of list_2. The list element 1 of list_2 is not returned, since the values of this list element are identical with the values of the first element of list_1.

In other words: All **unique list elements** are returned by the union function.

## Video: union and Other Set Functions

Have a look at the following video of the YouTube channel LearnR for more examples of the R union function and other so called ** set functions** such as intersect, setdiff, or setequal.

## Further Reading