J'ai une image de données comme: Je veux obtenir: p> comme un groupe par (A, B) , Sélectionnez la date MIN pour C et D, sélectionnez le MAX pour E et sélectionnez le non-NULL pour F et G P> Comment puis-je le résoudre dans R? p> p>
3 Réponses :
Utilisation de données.Table. Je devais changer une de vos dates car il n'y a pas de 30 février
Utilisation comme indiqué dans l'exemple, je suppose que je suppose que vous aurait une seule valeur non NA pour dplyr code> Nous pouvons group_by code> A code> et B code>, convertir c code> et d code> à des dates réelles en utilisant dmy code> à partir de lubridate code> et sélectionnez la date minimale, sélectionnez max code> Imum Valeur de E code> et non-na de f code> et g code>. F code> et g code> si vous en avez plus d'un, utilisez ensuite qui.max code> pour sélectionner le premier non- Valeur na de ces colonnes. P> p>
Utilisez la bibliothèque dplyr, disons que votre Dataframe est DF. La première chose est de remplacer na par 0
min code> ne fonctionnerait pas pour les dates. (colonne c code> et d code>). Ici, cela fonctionne car min (c ("01", "07")) code> vous donne "01", mais cela vous donnerait des résultats inattendus pour min ("11", 7 "))) code>. Vous devez la convertir en date d'abord pour utiliser min code>, max code> fonctions.
Veuillez partager les données à l'aide de
dput code> et la logiqueJe veux regrouper par (A, B) Sélectionnez la date min sur C et ON D Sélectionnez le numéro maximum sur E Sélectionnez le NOT NULL sur F et G
Quel est le motif. Dans Col D, prenez la deuxième valeur. dans le col C, vous prenez la première rangée
Je prends la date min