У меня есть два фрейма данных, как показано ниже, и я пытаюсь улучшить свой код, поэтому столбец letters
в df1
следует заменить на столбец letters
в df2
, если они совпадают.
df1 <- data.frame(ID = c(1,3,2,4,5), Letters = LETTERS[1:5], stringsAsFactors = F)
df2 <- data.frame(ID = c(1,3,4), Letters2 = "F", stringsAsFactors = F)
desired:
ID letters
1 F
2 B
3 F
4 D
5 F
Это было бы как в следующей строке сделать следующее:
desired <- merge(df1, df2, by = "ID", all.x = T)
desired$letters <- ifelse(is.na(desired$letters2), desired$letters, desired$letters2)
desired$letters2 <- NULL