I have 2 data frames,
R1 <- c("15515","5156","65656","1566", "2857")
RC <- c("A","X","B","Z","A")
R2 <- c("515","5156.11-","415-","1455-","886")
df <- data.frame(R1,RC,R2)
R1 <- c("15515","8888","65656","1566")
R2 <- c("111","222","333","444")
R3 <- c("999","888","777","666")
df2 <- data.frame(R1,R2,R3)
I need to first left join df on R1,
Conditions to be achieved,
1. if df$R1 != df2$R1
df$R2 <- df$R2 (As it is in df)
2. if df$R1 == df2$R1 & (df$RC == A | df$RC == B) then,
df$R2 <- df2$R2
3. if df$R1 == df2$R1 & (df$RC != A | df$RC != B) then,
df$R2 <- df2$R3
The output may look like
R1 RC R2
15515 A 111
5156 X 5156.11-
65656 B 333
1566 Z 666
2857 A 886
I tried executing below code,
df$R1[which(df$R1 == df2$R1) & which((df$RC == 'A' | df$RC == 'B'))] <- df2$R2[which(df$R1 == df2$R1) & which((df$RC == 'A' | df$RC == 'B'))]
df$R1[which(df$R1 == df2$R1) & which((df$RC != 'A' | df$RC != 'B'))] <- df2$R3[which(df$R1 == df2$R1) & which((df$RC != 'A' | df$RC != 'B'))]
But I lost condition 1 from this.
Your kind help is very much appreciated!