J'ai des données qui ressemblent à ceci: je veux regrouper par id code> tel que le fichier de données résultant contient le entier em> rangée qui satisfait à mon état d'agrégat. Donc, si je regrette par le
max code> de
int_var code>, je veux renvoyer la première ligne entière: p>
new_data <- aggregate(data[,c("ID", "FACTOR_VAR", "INT_VAR")], by=list(data$ID), fun=max)
3 Réponses :
Si vous souhaitez conserver toutes les colonnes, utilisez Ave code> à la place:
subset(df, as.logical(ave(INT_VAR, ID, FUN = function(x) x == max(x))))
Vous pouvez utiliser agrégat code> pour cela. Si vous souhaitez conserver toutes les colonnes,
fusion code> peut être utilisé avec celui-ci.
df <- structure(list(ID = c(1L, 1L), FACTOR_VAR = structure(1:2, .Label = c("CAT", "DOG"), class = "factor"), INT_VAR = 1:0), class = "data.frame", row.names = c(NA,-2L))
Nous pouvons le faire dans ou en utilisant dplyr code>
data.table code> p>
Utilisez
AVE code> si vous souhaitez conserver toutes les colonnes:
sous-ensemble (df, as.logique (AVE (INT_VAR, ID, amusement = fonction (x) x == max (x)) ) code>