Ceci est un exemple de mon df: et j'ai un autre DF avec ces valeurs: p> J'ai besoin de remplacer Les NA dans X avec les valeurs du Y DF.
C'est ce que j'attends. P> xy<- tibble::tribble(
~ID, ~Month, ~Value,
"A", 1L, 100L,
"A", 2L, 200L,
"A", 3L, 20L,
"A", 4L, 400L,
"B", 1L, 50L,
"B", 2L, 20L,
"B", 3L, 30L,
"B", 4L, 70L,
"C", 1L, 50L,
"C", 2L, 60L,
"C", 3L, 70L,
"C", 4L, 60L,
"D", 1L, 60L,
"D", 2L, 60L,
"D", 3L, 60L,
"D", 4L, 50L
)
3 Réponses :
Vous pouvez rejoindre les données et utiliser dans base r, vous pouvez coalesce code> pour sélectionner la valeur non NA.
fusion code> et utiliser
ifelse code> pour sélectionner la valeur non NA p>
transform(merge(x, y, by = 'Month'),
Value = ifelse(is.na(Value.x), Value.y, Value.x))[names(x)]
base r à l'aide de la correspondance:
comme mois em> in y code> est une séquence de
1: 4 code> Vous pouvez utiliser le mois directement pour le sous-ensemble.