[R] indexing

javier garcia-pintado jgarcia at ija.csic.es
Fri Feb 2 11:09:06 CET 2007


Thanks a lot
match() function does the task (of course this a a simple example of my
long datasets)
Just for the record, merge() function does not seem to work properly for
this (even with the sort=FALSE argument) as the order of the results
does not match the corresponding order of classes in the x vector.

Wishes,
Javier
-------------------------------------------------------

Tony Plate wrote:
> > a <- data.frame(value=c(6.5,7.5,8.5,12.0),class=c(1,3,5,2))
> > x <- c(1,1,2,7,6,5,4,3,2,2,2)
> > match(x, a$class)
>  [1]  1  1  4 NA NA  3 NA  2  4  4  4
> > a[match(x, a$class), "value"]
>  [1]  6.5  6.5 12.0   NA   NA  8.5   NA  7.5 12.0 12.0 12.0
> >
>
> -- Tony Plate
>
> javier garcia-pintado wrote:
>> Hello,
>> In a nutshell, I've got a data.frame like this:
>>
>>
>>> assignation <- data.frame(value=c(6.5,7.5,8.5,12.0),class=c(1,3,5,2))
>>> assignation
>>
>>   value class
>> 1   6.5     1
>> 2   7.5     3
>> 3   8.5     5
>> 4  12.0     2
>>
>>>  
>>
>>
>> and a long vector of classes like this:
>>
>>
>>> x <- c(1,1,2,7,6,5,4,3,2,2,2...)
>>
>>
>> And would like to obtain  a vector of length = length(x), with the
>> corresponding values extracted from assignation table. Like this:
>>
>>> x.value
>>
>>  [1]  6.5  6.5 12.0   NA   NA  8.5   NA  7.5 12.0 12.0 12.0
>>
>> Could you help me with an elegant way to do this ?
>> (I just can do it with looping for each class in the assignation table,
>> what a think is not perfect in R's sense)
>>
>> Wishes,
>> Javier
>>
>>
>> ------------------------------------------------------------------------
>>
>> ______________________________________________
>> R-help at stat.math.ethz.ch 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.
>
>


-- 
Javier García-Pintado
Institute of Earth Sciences Jaume Almera (CSIC)
Lluis Sole Sabaris s/n, 08028 Barcelona
Phone: +34 934095410
Fax:   +34 934110012
e-mail:jgarcia at ija.csic.es 



More information about the R-help mailing list