[R] vector comparison
Karin Lagesen
karinlag at studmed.uio.no
Thu Jun 5 12:38:14 CEST 2008
I know this is fairly basic, but I must have somehow missed it in the
manuals.
I have two vectors, often of unequal length. I would like to compare
them for identity. Order of elements do not matter, but they should
contain the same.
I.e: I want this kind of comparison:
> if (1==1) show("yes") else show("blah")
[1] "yes"
> if (1==2) show("yes") else show("blah")
[1] "blah"
>
Only replace the numbers with for instance the vectors
> a = c("a")
> b = c("b","c")
> c = c("c","b")
Now, I realize I only get a warning when comparing things, but this to
me means that I am not doing it correctly:
> if (a==a) show("yes") else show("blah")
[1] "yes"
> if (a==b) show("yes") else show("blah")
[1] "blah"
Warning message:
In if (a == b) show("yes") else show("blah") :
the condition has length > 1 and only the first element will be used
>
> if (b == c) show("yes") else show("blah")
[1] "blah"
Warning message:
In if (b == c) show("yes") else show("blah") :
the condition has length > 1 and only the first element will be used
>
I have also tried the %in% comparator, but that one throws warnings too:
> if (b %in% c) show("yes") else show("blah")
[1] "yes"
Warning message:
In if (b %in% c) show("yes") else show("blah") :
the condition has length > 1 and only the first element will be used
>
> if (c %in% c) show("yes") else show("blah")
[1] "yes"
Warning message:
In if (c %in% c) show("yes") else show("blah") :
the condition has length > 1 and only the first element will be used
>
So, how is this really supposed to be done?
Thanks!
Karin
More information about the R-help
mailing list