[R] Coding a new variable based on criteria in a dataset

Ben Bolker bbolker at gmail.com
Tue Dec 21 14:22:33 CET 2010


RaoulD <raoul.t.dsouza <at> gmail.com> writes:

> 
> 
> Hi,
> 
> I'm a bit stuck and need some help with R code to code a variable F_R based
> on a combination of conditions. 
> 
> The first condition would code F_R as "F" and would be based on the
> min(Date) and Min(Time) for each combination of UniqueID & Reason. The
> second condition would code the variable as "R" as it would be the rest of
> the data that dont meet the first condition. 
> 

  It isn't quite convenient to read the data posted below into R
(if it was originally tab-separated, that formatting got lost) but
ddply from the plyr package is good for this: something like (untested)

  d <- with(data,ddply(data,interaction(UniqueID,Reason),
                    function(x) {
                          ## make sure x is sorted by date/time here
                          x$F_R <- c("F",rep("R",nrow(x)-1))
                          x
                     })

> For example: for "UID 1" & "Reason 1" the first record would be coded "F"
> and the 4th record would be coded "R". 
> 
>    UniqueID   Reason       Date  Time
> 1     UID 1   Reason 1 19/12/2010 15:00
> 2     UID 1   Reason 2 19/12/2010 16:00
> 3     UID 1   Reason 3 19/12/2010 16:30
> 4     UID 1   Reason 1 20/12/2010 08:00

[snip]



More information about the R-help mailing list