[R] Creating a vector based on lookup function

Charles C. Berry cberry at tajo.ucsd.edu
Wed Nov 26 21:30:31 CET 2008

```On Wed, 26 Nov 2008, PDXRugger wrote:

>
> I am still searching for a solution to what i think is a simple problem i am
> having with building a vector in a for loop.  I have built a more
> understandable example so hopefully that will help..help you, help me, if
> you know what i mean.
>
> dev=400
> #test location model TAZs to reference
> cands=c(101,105,109)
>
> #Create Object of length of cands
> candslength=length(cands)
>
> #TEST TAZ Vector
> CANDS=(100:110)
>
> #Test Dev Vector
> TAZDEVS=c(120,220,320,420,520,620,720,820,920,1020,1120)
>
> #Creates datframe of CANDS and DEVS
> TAZLIST=data.frame(CANDS,TAZDEVS)
>
> for(i in 1:candslength){
>
> 	cand=cands[i]
>
> 	#Creates an object based on the value of "cands" in TAZLIST
> 	TAZDet=TAZLIST[TAZLIST\$CANDS==cand[i],2]
>
> 	}
>
> What i would like to see is TAZDet filled with the "cands" corresponding
> values found in "TAZLIST"'s second column TAZDEVS, they would be
> 120,520,920.

No.

101 is the second element of CANDS
220 is the second element of TAZDEVS

So, 120 is not 'corresponding' in any sense I know of. et cetera.

So if things worked the way i would like them TAZDet would be
> a vector containing these three values (102,520,920).  At this point it
> gives me NAs.

Which happens because you have an obvious bug. What is

TAZLIST\$CANDS==cand[3]
??

> Any help would be desirable, Thanks guys and gals.

Is this what you seek?

with(TAZLIST,TAZDEVS[match(cands,CANDS)])

HTH,

Chuck

>
>
> Cheers,
> JR
> --
> View this message in context: http://www.nabble.com/Creating-a-vector-based-on-lookup-function-tp20706588p20706588.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