> 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 > > > ------------------------------------------------------------------------ > > ______________________________________________ > [email protected] 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. ______________________________________________ [email protected] 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.
