[R] How to add a variable to a dataframe whose values are conditional upon the values of an existing variable

Erik Iverson eriki at ccbr.umn.edu
Fri Feb 26 20:38:02 CET 2010


You mention ifelse, so for completeness, I will show you a solution that 
should work with that.  There are other plenty of other possibilities 
though, I am sure.  The follow is not tested..

Assume 'my.df' is your data.frame, containing a variable "DOW".

my.df$DOW1 <- ifelse(my.df$DOW == "SAT", 1,
                      ifelse(my.df$DOW == "SUN", 2,
                         ifelse(my.df$DOW == "MON", 3,
                           ifelse(my.df$DOW == "TUE", 4,
                              ifelse(my.df$DOW == "WED", 5,
                                 ifelse(my.df$DOW == "THU", 6,
                                      7))))))

(don't know if the number of closing ")" is right, but you get the idea...

Erik


Steve Matco wrote:
> Hi everyone,
> 
> I am at my wits end with what I believe would be considered simple by a more experienced R user. I want to know how to add a variable to a dataframe whose values are conditional on the values of an existing variable. I can't seem to make an ifelse statement work for my situation. The existing variable in my dataframe is a character variable named DOW which contains abbreviated day names (SAT, SUN, MON.....FRI). I want to add a numerical variable named DOW1 to my dataframe that will take on the value 1 if DOW equals "SAT", 2 if DOW equals "SUN", 3 if DOW equals "MON",.....,7 if DOW equals "FRI". 
> I  know this must be a simple problem but I have searched everywhere and tried everything I could think of. Any help would be greatly appreciated.
> 
> Thank you,
> 
> Mike
> 
> 
> 
> 
> ______________________________________________
> R-help at 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.



More information about the R-help mailing list