[R] Conditionally constructing columns in a data frame

Erik Iverson eriki at ccbr.umn.edu
Tue Jun 29 20:59:08 CEST 2010


I'm sure there's an easier way, but it's going to be easiest to get a 
useful response if we have a reproducible, minimal example, as the 
posting guide requests. ?tapply is probably involved.

Stuart Luppescu wrote:
> 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.
>



More information about the R-help mailing list