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 logique
Je 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