comparaison des vecteurs

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

Mohamed Boudi
Messages : 20
Enregistré le : 21 Mar 2013, 10:07

comparaison des vecteurs

Messagepar Mohamed Boudi » 04 Mai 2013, 16:18

Bonjour,
Comme vous voyez je bug toujours avec R cette fois-ci c'est dans la comparaison de 2 vecteur comme l'exemple suivant :

Code : Tout sélectionner

v1<-c(1,2)
v2<-c(2,4)

il faut que les composant de chaque vecteur n'existe pas dans l'autre vecteur (totalement différent) pour cela j'ai fais ça :

Code : Tout sélectionner

if (any (v1[1]==v2) | any (v1[2]==v2)) {...............}

jusqu’à maintenant ça marche mais dans le cas ou j'ai des vecteurs avec plusieurs composants ça va être trop long ....
y a t-il une solution a ce problème ?
Merci d'avance
BOUDI

Gabriel Terraz
Messages : 591
Enregistré le : 26 Sep 2011, 15:11

Messagepar Gabriel Terraz » 04 Mai 2013, 16:47

Je pense que intersect() pourra t'aider :

Code : Tout sélectionner

intersect(c(1,2),c(2,4))
intersect(c(1,2),c(3,4))

Mohamed Boudi
Messages : 20
Enregistré le : 21 Mar 2013, 10:07

Messagepar Mohamed Boudi » 04 Mai 2013, 18:43

Re,
c'est une bonne idée mais ça marche pas car ce que je cherche c'est sois TRUE ou FALSE (réponse booléen), comme je peux continuer. dans qu'ils soient différents je les mets en un seul vecteur .....
Merci ;)
BOUDI

Aurélien Madouasse
Messages : 352
Enregistré le : 26 Fév 2007, 11:23

Messagepar Aurélien Madouasse » 05 Mai 2013, 14:07

Bonjour,

Une idée:

Code : Tout sélectionner

X <- 1:10
Y <- 0:9

sapply(X, function(x) x %in% Y)


Aurélien

Eric Wajnberg
Messages : 778
Enregistré le : 11 Aoû 2008, 15:37
Contact :

Messagepar Eric Wajnberg » 05 Mai 2013, 15:59

Je suis pas sûr de bien saisir la question initialement posée. Pourquoi ne pas faire simplement:

Code : Tout sélectionner

 if(sum((X-Y)!=0)==0) TRUE

Ca resterait efficace même avec de longs vecteurs. Non?

Ou alors, j'ai loupé quelque chose.

HTH

jean lobry
Messages : 733
Enregistré le : 17 Jan 2008, 20:00
Contact :

Messagepar jean lobry » 05 Mai 2013, 18:17

Une piste :

Code : Tout sélectionner

> v1 <- c(1, 2)
> v2 <- c(2, 4)
> c(v1, v2)
[1] 1 2 2 4
> duplicated(c(v1, v2))
[1] FALSE FALSE  TRUE FALSE
> any(duplicated(c(v1, v2)))
[1] TRUE

Amicalement,

Jean

Mohamed Boudi
Messages : 20
Enregistré le : 21 Mar 2013, 10:07

Messagepar Mohamed Boudi » 12 Mai 2013, 20:57

Bonsoir, Merci beaucoup pour vos réponse j'ai utilisé (any (duplicated)) ...
Bonne nuit a tous ;)
BOUDI


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité