[R] Assigning entries to categories
Charles C. Berry
cberry at tajo.ucsd.edu
Thu Jul 1 18:51:18 CEST 2010
On Thu, 1 Jul 2010, LogLord wrote:
>
> As requested, here is some example data:
> a=c("x","y","z")
> b=c(1,5,8)
> c=c(200010,535388,19929)
> data=data.frame(a,b,c)
>
> d=c("cat1","cat2","cat3")
> b1=c(1,5,8)
> c_start=c(200000,500000,600000)
> c_stop=c(201000,550000,700000)
> category=data.frame(d,b1,c_start,c_stop)
>
> I want to add a variable into data, which assigns in this case to "x"
> "cat1", "y" "cat2" and leaves "z" unassigned. So first it should test if b =
> b1 for each row and if this is true it should test if c >= c_start and <=
> c_stop. If this is all true the value of d should be transfered into the new
> variable.
Like this?
> data$new.var <- category$d
> is.na( data$new.var ) <- with(data, b != category$b1 | c < category$c_start | c> category$c_stop )
> data
a b c new.var
1 x 1 200010 cat1
2 y 5 535388 cat2
3 z 8 19929 <NA>
>
You may want to read up on
?match
and
?merge
in case the rows of data and those of category are not in
one-to-one correspondence.
Charles C. Berry (858) 534-2098
Dept of Family/Preventive Medicine
E mailto:cberry at tajo.ucsd.edu UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/ La Jolla, San Diego 92093-0901
More information about the R-help
mailing list