A resposta B está igual a resposta C ambos com by = "name" o que daria erro.
#Dados da Tabela A
tabela_A = data.frame(c("A125", "B235","C355","D354","Q111","X000"),
c("Andre", "Marcos", "Fernanda", "Julia", "Maria", "Jose"),
c(21,28,29,35,22,39))
colnames(tabela_A) = c("id","Nome","Idade")
#Dados da Tabela B
tabela_B = data.frame(c("A125","C355","D354","Q111"),
c("BA", "RJ", "RS", "SP"),
c("Analista", "Analista", "Gerente", "Coordenador"),
c(0,0,1,2))
colnames(tabela_B) = c("id", "UF", "Cargo", "N de Filhos")
Como nesse caso todas os id's da tabela A já estão na tabela B, se for feito um left_join por id da tabela A pra B aparecerá todos os resultados mas com a falta de dados Sendo D a opção correta
tabela_A %>%
left_join(tabela_B , by = “id”)