Note that TRUE and FALSE become 1 and 0 when used in arithmetic formulae so:
result <- with(DF, (type %in% c("A", "B", "C")) * (1 * (status == "a") + 2 * (status == "b") + 3 * (status == "c")) + (type %in% c("D", "E", "F")) * (9 * (status == "a") + 8 * (status == "b") + 7 * (status == "c"))) If none of the conditions hold for row i then result[i] will be 0. On Sun, Jun 14, 2009 at 6:18 PM, Mark Na<mtb...@gmail.com> wrote: > Hi, > I've been struggling most of the morning with an IF ELSE problem, and I > wonder if someone might be able to sort me out. > > Here's what I need to do (dummy example, my data are more complicated): > > If type = A or B or C > and status = a then count = 1 > and status = b then count = 2 > and status = c then count = 3 > > Else if type = D or E or F > and status = a then count = 9 > and status = b then count = 8 > and status = c then count = 7 > > End > > Seems simple when I write it like that, but the R code is escaping me. > > Thanks! > > Mark Na > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org 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. > ______________________________________________ R-help@r-project.org 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.