IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Ne garder que la 1ère ligne d'une valeur dans un dataframe


Sujet :

R

  1. #1
    Candidat au Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Ne garder que la 1ère ligne d'une valeur dans un dataframe
    Bonjour,

    Je débute en R et j'ai un problème de traitement de données

    J'ai un dataframe qui ressemble à cela (avec bien entendu beaucoup plus de lignes et de colonnes)
    Nom : Tab1.PNG
Affichages : 1354
Taille : 7,5 Ko

    Les lignes sont triées selon la colonne 1 puis la colonne 3 (en ordre ascendant) puis la colonne 4 (en ordre descendant) et je ne souhaite garder que la 1ère ligne de chaque groupe de la colonne 1

    Le dataframe final serait :
    Nom : Tab2.PNG
Affichages : 1333
Taille : 4,7 Ko

    Avec un tableur (type excel), auquel je suis un peu plus habituée, j'aurais ajouté une colonne 5 qui met un flag 1 si la valeur de la ligne n est différente de celle de la ligne n-1 et 0 sur les autres lignes et il ne me resterait plus qu'à filtrer

    Pourriez-vous m'aider pour obtenir ce résultat en R ?
    Avec mes remerciements

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 476
    Points : 831
    Points
    831
    Par défaut
    bonsoir une solution possible

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ## soit df ton dataframe
    library(dplyr)
    resultat <-df %>% slice(1) %>% ## on sélectionne la première ligne
     bind_rows( df %>% filter(col1!=lag(col1))) ## on ajoute toutes les lignes lorsque col1 change
    cdlt

  3. #3
    Candidat au Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    C'est exactement cela que je voulais faire
    Mille mercis

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2016] Une macro pour recopier des lignes suivant une valeur dans une cellule
    Par Ragnart dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/05/2019, 17h38
  2. Update multiple ne prend que la 1ère ligne
    Par S0091015 dans le forum Requêtes
    Réponses: 3
    Dernier message: 13/01/2011, 08h46
  3. [XL-2002] Comment empêcher la suppression de la 1ère ligne d'une feuille Excel?
    Par dariyoosh dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/07/2010, 11h02
  4. Réponses: 9
    Dernier message: 20/08/2009, 14h33
  5. ne garder que la première partie d'une chaine
    Par dirty_harry dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/05/2009, 09h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo