[R] Conditionally constructing columns in a data frame

Stuart Luppescu slu at ccsr.uchicago.edu
Tue Jun 29 20:54:16 CEST 2010


Hello, I have to construct 5 new columns in a data frame depending on
the value of another of the columns in the data frame. The only way I
could figure out to do this was to subset the data frame five times, do
the variable construction, and then rbind the subsets back together.
Here's part of the code I used:

read001 <- read[read$existstr=="001",]

  read001$era1end <- NA
  read001$era2base <- NA
  read001$era2end <- NA
  read001$era3base <- read001$era1base
  read001$era3end <- read001$era3base + (6 * read001$era3tr)

read011 <- read[read$existstr=="011",]

  read011$era1end <- NA
  read011$era2base <- read011$era1base
  read011$era2end <- read011$era2base + (4 * read011$era2tr)
  read011$era3base <- read011$era2end
  read011$era3end <- read011$era2end + (6 * read011$era3tr)

...

read2 <- rbind(read001, read011, read100, read110, read111)


Isn't there an easier way to do this?

Thanks.

-- 
Stuart Luppescu <slu at ccsr.uchicago.edu>
University of Chicago



More information about the R-help mailing list