[R] problem in matching numbers in two variables

Berend Hasselman bhh at xs4all.nl
Sat Apr 28 18:54:13 CEST 2012


On 28-04-2012, at 17:28, sagarnikam123 wrote:

> i want to compare two variables (having numbers) serially for
> matching/dismatching
> both having equal length
> 
>> x
>  [1] 2 2 1 2 3 2 2 2 2 3 3 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 2 3 2 3 2 2 2 1
> 2 2
> [38] 2 2 2 3 2 3 2 2 1 2 2 2 2 1 1 1 3 2 2 2 2 1 1 3 1 1 1 2 2 2 3 2 3 3 3
> 2 2
> [75] 2 2 3 2 2 1 1 1 2 3 2 2 2 2 2 2 2 2 2 1 1 3 2 2 2 2 2 2 2 2 2 2 2 1 3
>> y
>  [1] 2 2 2 1 3 1 3 2 1 3 3 3 3 2 2 1 2 3 3 3 1 1 2 2 2 2 2 2 1 2 3 1 2 2 1
> 1 2
> [38] 1 2 3 2 1 3 1 1 2 2 2 2 1 2 1 2 3 2 3 2 1 2 2 3 1 1 1 2 2 2 3 2 3 3 3
> 3 3
> [75] 2 2 1 2 1 2 1 2 1 3 3 3 1 2 2 2 1 2 1 2 2 3 2 3 2 3 2 2 2 2 1 2 2 2 3
>> length(x)
> [1] 109
>> length(y)
> [1] 109
>> #both having equal length
>> which(x%in%y)  #gives no of matches positions
>  [1]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17 
> 18
> [19]  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35 
> 36
> [37]  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53 
> 54
> [55]  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71 
> 72
> [73]  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89 
> 90
> [91]  91  92  93  94  95  96  97  98  99 100 101 102 103 104 105 106 107
> 108
> [109] 109
>> length(which(x%in%y))
> [1] 109
> 
> it show that all numbers are matched ,but in real this is not true
> so,how to find matched numbers from two variables(numeric) like this?

Please use dput() in future.

It's not quite clear what you exactly want but maybe this will do

x == y 
which(x==y)

Berend



More information about the R-help mailing list