You can use something like this to make sure that h2 is a subset of h1
in consecutive order:
> h1 <- 1:50
> h2 <- 25:30
> hm <- match(h2, h1)
> all(diff(hm) == 1)
[1] TRUE>
On Tue, Mar 17, 2009 at 6:42 AM, emj83 <stp08emj at shef.ac.uk>
wrote:>
> I have two numerical vectors; hun2 is a subset of hun1:
>
>> hun1
> ?[1] 147 198 141 170 184 136 150 134 144 161 124 103 107 110 121 ?79 106
> 51
> ?[19] 102 109 ?52 ?71 ?52 ?80 ?95 ?78 ?75 ?96 101 107 107 ?80 ?71 ?49 ?71
> 64
> ?[37] ?58 ?68 ?75 ?85 ?55 ?52 ?70 ?90 ?98 ?90 100 ?98 ?74 ?78 ?60 ?69 106
> 103
> ?[55] 106 124 111 ?97 ?66 ?83 ?54 ?58 ?74 ?76 ?73 101 ?68 ?50 ?45 ?69 ?69
> 75
> ?[73] ?80 ?55 ?79 ?58 ?61 ?72 ?90 ?91 ?99 ?58 ?63 ?57 ?72 ?36 ?58 ?44 ?63
> 54
> ?[91] ?39 ?41 ?48 ?65 ?86 ?73 ?74 ?69 ?66 ?59 ?52 ?68 ?91 100 151 112 119
> 93
> [109] ?66 ?73 ?87 ?99 ?79 109 ?94 ?80 ?63 ?51 ?46 ?39 ?28 ?34 ?49 ?45 ?36
> 32
> [127] ?36 ?39 ?52 ?63 ?59 ?47 ?57 ?52 ?46 ?39 ?54 ?53 ?80 ?43 ?48 ?37 ?42
> 43
> [145] ?47 ?34 ?42 ?45 ?50 ?48 ?49 ?55 ?62 ?46 ?61 ?60 ?42 ?48 ?58 ?49 ?60
>
>>hun2
> ?[1] 151 112 119 ?93 ?66 ?73 ?87 ?99 ?79 109 ?94 ?80 ?63 ?51 ?46 ?39 ?28
?34
> 49
> [20] ?45 ?36 ?32 ?36 ?39 ?52 ?63 ?59 ?47 ?57 ?52 ?46 ?39 ?54 ?53 ?80 ?43
?48
> 37
> [39] ?42 ?43 ?47 ?34 ?42 ?45 ?50 ?48 ?49 ?55 ?62 ?46 ?61 ?60 ?42 ?48 ?58
?49
> 60
>
> i want to cbind hun1 to hun2 at the position where they match.
>
> i have attempted to start this by using pmatch() to identify where it is
> they match- i get the following results.
>
>> pmatch(hun1,hun2,duplicates.ok=TRUE)
> ?[1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA ?9 NA 14 NA 10 25 NA 25
> 12 NA
> ?[26] NA NA NA NA NA NA 12 NA 19 NA NA 55 NA NA NA 48 25 NA NA NA NA NA NA
> NA NA
> ?[51] 52 NA NA NA NA NA NA NA ?5 NA 33 55 NA NA ?6 NA NA 45 20 NA NA NA 12
> 48 ?9
> ?[76] 55 51 NA NA NA ?8 55 13 29 NA 21 55 NA 13 33 16 NA 37 NA NA ?6 NA NA
> 5 27
> [101] 25 NA NA NA ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 10 11 12 13 14 15 16 17 18 19
> 20 21
> [126] 22 21 16 25 13 27 28 29 25 15 16 33 34 12 36 37 38 39 36 28 18 39 20
> 45 37
> [151] 19 48 49 15 51 52 39 37 55 19 52
>
> is there anyway that i can specify pmatch() to work if and only if it
> identifies all of hun2: something like this???
> ?[1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
> NA NA
> ?[26] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
> NA NA
> ?[51] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
> NA NA
> ?[76] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
> NA NA
> [101] NA NA NA NA NA NA NA NA NA ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 10 11 12 13 14
> 15 16
> [126] 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
> 40 41
> [151] 42 43 44 45 46 47 48 49 50 51 52
>
>
>
> --
> View this message in context:
http://www.nabble.com/matching-vectors-tp22556470p22556470.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
--
Jim Holtman
Cincinnati, OH
+1 513 646 9390
What is the problem that you are trying to solve?