Les posteurs les plus actifs de la semaine
Eric Wajnberg
Sorte de "jointure" sur des datas frame Vote_lcapSorte de "jointure" sur des datas frame Voting_barSorte de "jointure" sur des datas frame Vote_rcap 


Sorte de "jointure" sur des datas frame

Aller en bas

Sorte de "jointure" sur des datas frame Empty Sorte de "jointure" sur des datas frame

Message par HDKalit le Ven 27 Sep 2013 - 13:00

Bonjour tout le monde,

J'aimerai avoir des conseils (à mon avis je loupe quelque chose d'évident mais je raisonne trop en SQL en ce moment) sur la problématique suivante :

- j'ai une première dataframe composée comme suit :

Code:

       Numero  Date                     Releve1        Releve2
       9001      20120801             220              2        
       9001      20120802             242              1      
       9001      20120803             219              0      
       9002      20120804             192              2        
- et une deuxième:

Code:

       Numero  Date                      
       9001      20120802  
       9003      20130402 
J'aimerai en fait retirer de ma première data frame toutes les lignes correspondants aux Numéros qui sont aussi dans la deuxième data frame mais avec une date strictement supérieure à celle indiquée dans la deuxième.

En gros je souhaite (pour cet exemple) un résultat du style:

Code:

       Numero  Date                     Releve1        Releve2
       9001      20120801             220              2        
       9001      20120802             242              1        
       9002      20120804             192              2        
Et là j'avoue que je me perds avec les which() dans tous les sens.

Si quelqu'un avait une petite astuce je suis preneur,

Cdlt,

Khalid

HDKalit

Nombre de messages : 85
Date d'inscription : 10/01/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Sorte de "jointure" sur des datas frame Empty Re: Sorte de "jointure" sur des datas frame

Message par HDKalit le Ven 27 Sep 2013 - 14:07

Pour le moment je fais quelque chose dans ce genre là ... (attention aux yeux il est probable que ça pique Smile):

Code:

dataJointDelete <- function(mydata1,mydata2){
   
   indicesLignesOut <- which(mydata1$Numero %in% mydata2$Numero);
   mynewdata <- mydata1[-indicesLignesOut,];
   
   mydataRes <- mydata1[indicesLignesOut,];
   listNumero <- unique(mydata2$Numero); # liste des produits uniques appartenant aux produits OUT
   
   j <- 1;
   
   for (i in 1:length(listNumero)){
      dDay <- mydata2$dateDay[which(mydata2$Numero %in% listNumero[j])];
      mynewdata <- rbind(mynewdata,mydataRes[which(mydataRes$dateDay[which(mydataRes$Numero %in% listNumero[j])] <= dDay),]);
      j <- j+1;
   }
   
   return(mynewdata);
}

HDKalit

Nombre de messages : 85
Date d'inscription : 10/01/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Sorte de "jointure" sur des datas frame Empty Re: Sorte de "jointure" sur des datas frame

Message par droopy le Ven 27 Sep 2013 - 15:01

Bonjour,
Quelque chose dans le genre :
Code:
tab1[tab1$Date>tab2$Date[match(tab1$Numero, tab2$Numero, nomatch=TRUE)],]
Cdlt
droopy
droopy

Nombre de messages : 1126
Date d'inscription : 04/09/2009

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Sorte de "jointure" sur des datas frame Empty Re: Sorte de "jointure" sur des datas frame

Message par HDKalit le Ven 27 Sep 2013 - 15:18

Bonjour Droopy,

Merci pour l'info. Je ne connaissais pas la fonction match!
Je vais regarder comment elle fonctionne mais ça semble répondre à mon problème.

Merci Wink

Khalid

HDKalit

Nombre de messages : 85
Date d'inscription : 10/01/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Sorte de "jointure" sur des datas frame Empty Re: Sorte de "jointure" sur des datas frame

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum