Comparaison de plusieurs Data Frame

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Re: Comparaison de plusieurs Data Frame

Messagepar Logez Maxime » 10 Mai 2017, 08:33

Bonjour,

ce que tu as trouvé est dans la logique de ma solution, tu recherches ce qui est commun aux deux toi en faisant deux fois '%in%' et moi en utilisant la fonction intersect :

Code : Tout sélectionner

x <- letters[1:5]
y <- letters[3:7]

x <- x[x %in% y]
y <- y[y %in% x]
c(x,y)

intersect(x,y)
[1] "c" "d" "e"
L'avantage de combiner Reduce et la fonction intersect est que tu obtiens le vecteur des valeurs communes à tous tes objets plus facilement :

Code : Tout sélectionner

x <- letters[1:5]
y <- letters[3:7]
z <- letters[4:10]

x <- x[x %in% y]
x <- x[x%in%z]

y <- y[y %in% x]
z <- z[z%in%x]

c(x, y, z)
[1] "d" "e" "d" "e" "d" "e"
# à la place de :
x <- letters[1:5]
y <- letters[3:7]
z <- letters[4:10]

A <- list(x, y, z)
auxi <- Reduce(intersect, A) # le vecteur des valeurs communes
do.call(c, lapply(A, function(x) x[x%in%auxi]))
[1] "d" "e" "d" "e" "d" "e"
Dans ton cas tu as des tableaux mais la logique est la même. Ca évite de construire manuellement le tableau joint et de la comparer aux autres tableaux.

Cordialement,
Maxime

Michèle Raffaelli
Messages : 11
Enregistré le : 25 Avr 2017, 16:22

Re: Comparaison de plusieurs Data Frame

Messagepar Michèle Raffaelli » 10 Mai 2017, 09:41

Merci beaucoup
Pas toujours simple de partir d'un Script Bash et de le convertir avec R
Mais j'approche du bout du tunnel (enfin pour cette fois en tout cas)

Michèle


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

cron