[R] indexing

Tony Plate tplate at acm.org
Thu Feb 1 17:44:28 CET 2007


 > 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.



More information about the R-help mailing list