-1
votes

R script fusionnez 2 rangées

J'ai une image de données comme: xxx

Je veux obtenir: xxx

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

Comment puis-je le résoudre dans R?


4 commentaires

Veuillez partager les données à l'aide de dput 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


3 Réponses :


0
votes

Utilisation de données.Table. Je devais changer une de vos dates car il n'y a pas de 30 février xxx


0 commentaires

0
votes

Utilisation dplyr Nous pouvons group_by A et B , convertir c et d à des dates réelles en utilisant dmy à partir de lubridate et sélectionnez la date minimale, sélectionnez max Imum Valeur de E et non-na de f et g . xxx

comme indiqué dans l'exemple, je suppose que je suppose que vous aurait une seule valeur non NA pour F et g si vous en avez plus d'un, utilisez ensuite qui.max pour sélectionner le premier non- Valeur na de ces colonnes.


0 commentaires

0
votes

Utilisez la bibliothèque dplyr, disons que votre Dataframe est DF. La première chose est de remplacer na par 0 xxx


1 commentaires

min ne fonctionnerait pas pour les dates. (colonne c et d ). Ici, cela fonctionne car min (c ("01", "07")) vous donne "01", mais cela vous donnerait des résultats inattendus pour min ("11", 7 "))) . Vous devez la convertir en date d'abord pour utiliser min , max fonctions.