Hi val, You had a "conditional leak" in your ifelse statements: dat2 <-read.table(text="ID d1 d2 d3 A 0 25 35 B 12 22 0 C 0 0 31 E 10 20 30 F 0 0 0", header=TRUE,stringsAsFactors=FALSE) dat2$d4<- ifelse(dat2$d1,dat2$d1,ifelse(dat2$d2,dat2$d2,ifelse(dat2$d3,dat2$d3,0)))
Even though it works, it is probably better to use a string of "if" statements rather than the above. Jim On Wed, Nov 27, 2019 at 10:15 AM Val <valkr...@gmail.com> wrote: > > HI All, I am having a little issue in my ifelse statement, > The data frame looks like as follow. > > dat2 <-read.table(text="ID d1 d2 d3 > A 0 25 35 > B 12 22 0 > C 0 0 31 > E 10 20 30 > F 0 0 0",header=TRUE,stringsAsFactors=F) > I want to create d4 and set the value based on the following conditions. > If d1 !=0 then d4=d1 > if d1 = 0 and d2 !=0 then d4=d2 > if (d1 and d2 = 0) and d3 !=0 then d4=d3 > if all d1, d2 and d3 =0 then d4=0 > > Here is the desired output and my attempt > ID d1 d2 d3 d4 > A 0 25 35 25 > B 12 22 0 12 > C 0 0 31 31 > E 10 20 30 10 > F 0 0 0 0 0 > > My attempt > dat2$d4 <- 0 > dat2$d4 <- ifelse((dat2$d1 =="0"), dat2$d2, ifelse(dat2$d2 == "0"), dat2$d3, > 0) > but not working. > > Thank you. > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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 -- To UNSUBSCRIBE and more, see 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.