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 :

Supprimer des lignes avec R


Sujet :

R

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 11
    Points : 9
    Points
    9
    Par défaut Supprimer des lignes avec R
    Bonjour à tous

    Je suis bloqué sur une manipulation particulière que j'aimerais faire...

    Je dispose de deux data.frame, contenant chacun respectivement 7 et 8 colonnes.
    Dans le data.frame A, la colonne V4 contient des lignes affichant un temps (par exemple 08:45).
    Dans le data.frame B, la colonne V5 contient également des lignes affichant un temps.
    Tous les temps de la colonne V4 du data.frame A sont inclus dans la colonne V5 du data.frame B, mais ce dernier data.frame contient des valeurs en plus que j'aimerais supprimer.
    Autrement dit, j'aimerais simplement garder les valeurs de temps communes entre la colonne V4 du data.frame A et la colonne V5 du data.frame B...

    Si je prends les 10 premières valeurs du data.fame A :

    V1 V2 V3 V4 V5 V6 V7
    1 CTH O0050010 19950801 00:01 100 O 9
    2 CTH O0050010 19950801 01:00 -20 O 9
    3 CTH O0050010 19950801 01:48 120 O 9
    4 CTH O0050010 19950801 03:17 30 O 9
    5 CTH O0050010 19950801 04:04 60 O 9
    6 CTH O0050010 19950801 06:01 -40 O 9
    7 CTH O0050010 19950801 08:45 120 O 9
    8 CTH O0050010 19950801 11:45 -80 O 9
    9 CTH O0050010 19950801 13:01 -80 O 9
    10 CTH O0050010 19950801 14:32 160 O 9

    ... et les 13 premières valeurs du data.frame B :

    V1 V2 V3 V4 V5 V6 V7 V8
    1 920 1 O0050010 19950801 00:00 22.1 9 2
    2 920 1 O0050010 19950801 00:01 22.2 9 2
    3 920 1 O0050010 19950801 01:00 16.2 9 2
    4 920 1 O0050010 19950801 01:48 23.5 9 2
    5 920 1 O0050010 19950801 03:17 18.6 9 2
    6 920 1 O0050010 19950801 04:04 20.1 9 2
    7 920 1 O0050010 19950801 06:01 15.3 9 2
    8 920 1 O0050010 19950801 08:45 23.5 9 2
    9 920 1 O0050010 19950801 09:03 22.2 9 2
    10 920 1 O0050010 19950801 11:45 13.6 9 2
    11 920 1 O0050010 19950801 13:01 13.6 9 2
    12 920 1 O0050010 19950801 14:09 22.2 9 2
    13 920 1 O0050010 19950801 14:32 26.0 9 2

    ... j'aimerais au final avoir un script qui supprime les lignes suivantes du data.frame B :

    V1 V2 V3 V4 V5 V6 V7 V8
    1 920 1 O0050010 19950801 00:00 22.1 9 2
    9 920 1 O0050010 19950801 09:03 22.2 9 2
    12 920 1 O0050010 19950801 14:09 22.2 9 2

    On peut bien constater que ces temps de la colonne V5 n'apparaissent pas dans la colonne V4 du data.frame A, d'où mon intérêt de vouloir les supprimer !

    Merci d'avance de votre aide !!

    Vincent

  2. #2
    Membre confirmé
    Homme Profil pro
    MCU
    Inscrit en
    Juillet 2010
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : MCU
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2010
    Messages : 185
    Points : 486
    Points
    486
    Par défaut
    Bonjour,

    Faites une recherche sur le forum. Ce sujet a déjà été traité d'une manière ou d'une autre.

    HTH

    Vincent

  3. #3
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 040
    Points : 23 795
    Points
    23 795
    Par défaut
    Bonjour,

    En supposant que le data frame A s'appelle dfA et le data frame B s'appelle B, et en supposant que la seule colonne contenant les heures suffise (et qu'il n'y ait pas, par exemple, plusieurs jours dans chaque data frame), alors la commande suivante devrait éliminer les lignes en plus de data frame B :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dfB <- subset(dfB, ! V5 %in% dfA$V4)
    En passant par le package data.table, c'est encore plus simple à effectuer...

Discussions similaires

  1. [XL-2007] Supprimer des lignes avec vba
    Par sigma17 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 12/01/2015, 15h31
  2. Réponses: 10
    Dernier message: 24/02/2014, 15h22
  3. Supprimer des lignes avec JTable
    Par momop72 dans le forum Composants
    Réponses: 2
    Dernier message: 04/12/2013, 14h45
  4. comment supprimer des lignes avec macros
    Par kadij dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/06/2009, 06h14
  5. supprimer des lignes avec VBA
    Par NulenVBA dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/10/2008, 17h14

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