Je voudrais remplir les valeurs NA dans la colonne F2, en fonction de la valeur F2 la plus courante lorsqu'elle est regroupée par F1-colonne.
F1 F2 1 A C 2 B D 3 A C 4 A C 5 B D
4 Réponses :
Essayez ceci:
premier dans df2 code> i get Max comptage par la variable F1 code> où F2 n'est pas manquant. Cela vous donnera la valeur F2 la plus courante lorsque des groupes de F1. Je le rejoint sur les données originales.frame et utilisez un Mutate code> pour remplir par la nouvelle variable f2_fill code> puis supprimez-le de cette variable de la carafe. p>
Voici un moyen d'utiliser en cas de cravates, la préférence est donnée à l'ordre lexicographique. P> P> dplyr code>:
Voici une solution de base r. Tout d'abord définir une fonction pour le mode (extrait de ici ), puis appliquez-la sur votre cadre de données, c'est-à-dire
Mode <- function(x) {
ux <- unique(x)
ux[which.max(tabulate(match(x, ux)))]
}
df$F2 <- with(df, ave(F2, F1, FUN = function(i) replace(i, is.na(i), Mode(i))))
df
# F1 F2
#1 A C
#2 B D
#3 A C
#4 A C
#5 B D
Vous pouvez utiliser données: p> Ave code> avec Tableau code> et qui.max code> et sous-téléposez avec is.na code> quand il est Un caractère code>.
@ Leero11 Quelle valeur doit être insérée quand il y a des liens?
@Markus dans une situation de cravate l'une quelconque est ok