0 votes
1 view
in R Programming by (7.8k points)

I have two data.frames, one with only characters and the other one with characters and values.

df1 = data.frame(x=c('a', 'b', 'c', 'd', 'e'))

df2 = data.frame(x=c('a', 'b', 'c'),y = c(0,1,0))

merge(df1, df2)

  x y

1 a 0

2 b 1

3 c 0 

I want to merge df1 and df2. The characters a, b and c merged good and also have 0, 1, 0 but d and e have nothing. I want d and e also in the merge table, with the 0 0 conditions. Thus for every missing row at the df2 data.frame, the 0 must be placed in the df1 table, like:

  x y

1 a 0

2 b 1

3 c 0

4 d 0

5 e 0

1 Answer

0 votes
by (25.3k points)
edited by

To merge unequal data frames using merge function, you need to set the all argument of the merge function to TRUE to return NA for values that do not match.i.e.,

df1 = data.frame(x=c('a', 'b', 'c', 'd', 'e'))

df2 = data.frame(x=c('a', 'b', 'c'),y = c(0,1,0))

df <- merge(df1, df2, all = TRUE)

df[is.na(df)] <- 0  #To set NA to zero

df

  x y

1 a 0

2 b 1

3 c 0

4 d 0

5 e 0

If you want to learn more about R programming watch this tutorial on Introduction to Data Science with R 

Related questions

Welcome to Intellipaat Community. Get your technical queries answered by top developers !


Categories

...