0

I have two similar datasets that I want to merge, but I need the same number of rows.

Let's say I have these two datasets, first one:

state <- c(Alabama, Alabama, Alabama, Alabama, Alabama, Alabama, Arkansas, Arkansas, Arkansas, Arkansas, Arkansas, Arkansas)
year <- c(1991, 1992, 1993, 1994, 1995, 1996, 1991, 1992, 1993, 1994, 1995, 1996)
df1 <- data.frame(state, year)

Second one:

state <- c(Alabama, Alabama, Alabama, Arkansas, Arkansas, Arkansas)
year<- c(1991, 1992, 1996, 1992, 1993, 1995)
cats <- c(2, 3, 5, 3, 4, 7)
dogs <- c(3, 5, 6, 1, 3, 4)
df2 <- data.frame(state, year, casts, dogs)

I want to obtain this dataset format:

state <- c(Alabama, Alabama, Alabama, Alabama, Alabama, Alabama, Arkansas, Arkansas, Arkansas, Arkansas, Arkansas, Arkansas)
year <- c(1991, 1992, 1993, 1994, 1995, 1996, 1991, 1992, 1993, 1994, 1995, 1996)
cats <- c(2, 3, N/A, N/A, N/A, 5, N/A, 3, 4, N/A, 7, N/A)
dogs <- c(3, 5, N/A, N/A, N/A, 6, N/A, 1, 3, N/A, 4, N/A)
df3 <- data.frame(state, year, casts, dogs)

In my original dataset I have more years, states and other variables, hence, I would like to code it without mentioning particular rows.

user438383
  • 5,716
  • 8
  • 28
  • 43
  • Do a left_join, `merge(df1, df2, all.x = T)`, or `dplyr::left_join(df1, df2)` – Maël May 09 '22 at 09:43
  • Does this answer your question? [How to join (merge) data frames (inner, outer, left, right)](https://stackoverflow.com/questions/1299871/how-to-join-merge-data-frames-inner-outer-left-right) – Maël May 09 '22 at 09:43

0 Answers0