# Re: [R] vector comparison

From: Chuck Cleland <ccleland_at_optonline.net>
Date: Thu, 05 Jun 2008 08:05:52 -0400

On 6/5/2008 6:38 AM, Karin Lagesen wrote:
> 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?
```a <- c("a")
b <- c("b","c")
c <- c("c","b")

```

if (setequal(a, b)) show("yes") else show("blah") [1] "blah"

if (setequal(a, c)) show("yes") else show("blah") [1] "blah"

if (setequal(b, c)) show("yes") else show("blah") [1] "yes"

?setequal

> Thanks!
>
> Karin
>
> ______________________________________________
> R-help_at_r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> and provide commented, minimal, self-contained, reproducible code.

```--
Chuck Cleland, Ph.D.
NDRI, Inc. (www.ndri.org)
71 West 23rd Street, 8th floor
New York, NY 10010
tel: (212) 845-4495 (Tu, Th)
tel: (732) 512-0171 (M, W, F)
fax: (917) 438-0894

______________________________________________
R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help