w3resource

R Programming: Create Inner, Outer, Left, and Right Joins

R Programming: Data frame Exercise-13 with Solution

Write a R program to create inner, outer, left, right join(merge) from given two data frames.

Sample Solution :

R Programming Code :

# Create the first data frame with a column 'numid'
df1 = data.frame(numid = c(12, 14, 10, 11))

# Create the second data frame with a column 'numid'
df2 = data.frame(numid = c(13, 15, 11, 12))

# Print a message indicating the start of the Left Outer Join
print("Left outer Join:")

# Perform a Left Outer Join on 'numid' between df1 and df2
# This includes all rows from df1 and matched rows from df2
result = merge(df1, df2, by = "numid", all.x = TRUE)

# Print the result of the Left Outer Join
print(result)

# Print a message indicating the start of the Right Outer Join
print("Right outer Join:")

# Perform a Right Outer Join on 'numid' between df1 and df2
# This includes all rows from df2 and matched rows from df1
result = merge(df1, df2, by = "numid", all.y = TRUE)

# Print the result of the Right Outer Join
print(result)

# Print a message indicating the start of the Outer Join
print("Outer Join:")

# Perform a Full Outer Join on 'numid' between df1 and df2
# This includes all rows from both df1 and df2
result = merge(df1, df2, by = "numid", all = TRUE)

# Print the result of the Outer Join
print(result)

# Print a message indicating the start of the Cross Join
print("Cross Join:")

# Perform a Cross Join (Cartesian Product) between df1 and df2
# This includes all combinations of rows from both df1 and df2
result = merge(df1, df2, by = NULL)

# Print the result of the Cross Join
print(result)

Visual Presentation :

SQL JOINS

Output:

[1] "Left outer Join:"
  numid
1    10
2    11
3    12
4    14
[1] "Right outer Join:"
  numid
1    11
2    12
3    13
4    15
[1] "Outer Join:"
  numid
1    10
2    11
3    12
4    13
5    14
6    15
[1] "Cross Join:"
   numid.x numid.y
1       12      13
2       14      13
3       10      13
4       11      13
5       12      15
6       14      15
7       10      15
8       11      15
9       12      11
10      14      11
11      10      11
12      11      11
13      12      12
14      14      12
15      10      12
16      11      12      

Explanation:

  • Create Data Frames:
    • df1 = data.frame(numid = c(12, 14, 10, 11))
      • Creates the first data frame df1 with a column numid containing the values 12, 14, 10, and 11.
    • df2 = data.frame(numid = c(13, 15, 11, 12))
      • Creates the second data frame df2 with a column numid containing the values 13, 15, 11, and 12.
  • Left Outer Join:
    • print("Left outer Join:")
      • Prints a message indicating that the following output will be from a Left Outer Join.
    • result = merge(df1, df2, by = "numid", all.x = TRUE)
      • Performs a Left Outer Join between df1 and df2 on the numid column, including all rows from df1 and matching rows from df2.
    • print(result)
      • Prints the result of the Left Outer Join.
  • Right Outer Join:
    • print("Right outer Join:")
      • Prints a message indicating that the following output will be from a Right Outer Join.
    • result = merge(df1, df2, by = "numid", all.y = TRUE)
      • Performs a Right Outer Join between df1 and df2 on the numid column, including all rows from df2 and matching rows from df1.
    • print(result)
      • Prints the result of the Right Outer Join.
  • Outer Join:
    • print("Outer Join:")
      • Prints a message indicating that the following output will be from a Full Outer Join.
    • result = merge(df1, df2, by = "numid", all = TRUE)
      • Performs a Full Outer Join between df1 and df2 on the numid column, including all rows from both df1 and df2.
    • print(result)
      • Prints the result of the Full Outer Join.
  • Cross Join:
    • print("Cross Join:")
      • Prints a message indicating that the following output will be from a Cross Join (Cartesian Product).
    • result = merge(df1, df2, by = NULL)
      • Performs a Cross Join (Cartesian Product) between df1 and df2, which includes all combinations of rows from both data frames.
    • print(result)
      • Prints the result of the Cross Join.

R Programming Code Editor:



Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Write a R program to sort a given data frame by multiple column(s).
Next: Write a R program to replace NA values with 3 in a given data frame.

Test your Programming skills with w3resource's quiz.

What is the difficulty level of this exercise?



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://w3resource.com/r-programming-exercises/dataframe/r-programming-data-frame-exercise-13.php