Re: [R] help with nesting if else statements

2020-09-24 Thread Rodrigo Ângelo
Hi Ana, The ifelse function works like this: *ifelse(condition, if.true, if.false)* it will check the condition, and if, and only if, condition is true, it will execute whatever is in if.true, and if condition is false (and only if the condition is false) it will execute what's in if.false. wh

Re: [R] help with nesting if else statements

2020-09-24 Thread PIKAL Petr
2 2 2 NA 19 fam5658 G56581 1 1 1 20 fam5659 G56592 2 2 NA Cheers Petr > -Original Message- > From: R-help On Behalf Of Ana Marija > Sent: Wednesday, September 23, 2020 6:44 PM > To: r-help > Subject: [R] help with ne

Re: [R] help with nesting if else statements

2020-09-23 Thread Jeremie Juste
Hello Ana Marija, Apologies, the warning escaped me. When Pheno is assigned NA . > a=a[,PHENO:=NA] It is assigned a NA of type logical by default. We just have to make sure it is an NA of type numeric > a[,PHENO:=1.0*NA] So the full set of commands is: library(data.table) setDT(a) a[,PHENO:=

Re: [R] help with nesting if else statements

2020-09-23 Thread Ana Marija
Hi Jeremie, when I try to reproduce your code this is what I get: > a=setDT(a) > head(a) FID IID CURRELIG PLASER RTNPTHY 1: fam0110 G1102 2 2 2: fam0113 G1132 2 2 3: fam0114 G1142 2 2 4: fam0117 G1172 2 2 5: fam01

Re: [R] help with nesting if else statements

2020-09-23 Thread Jeremie Juste
Hello Ana Marija, I cannot reproduce your error, with a$PHENO=ifelse(a$PLASER==2 |a$RTNPTHY==2, 2, ifelse(a$CURRELIG==1 | a$RTNPTHY==1,1,NA)) For instance I have the expected PHENO=2 > FID IID CURRELIG PLASER RTNPTHY PHENO > 39: fam5706 G57061 1 2 2 In gen

Re: [R] help with nesting if else statements

2020-09-23 Thread Bert Gunter
Nested ifelse()'s are confusing and invite error. Just use ?within and subscript with your conditions: dat$PHENO <- NA ## initialize PHENO > dat <- ## to return the modified result within(dat, { + PHENO[CURRELIG ==1] <- 1 + PHENO[CURRELIG == 1 & PLASER == 2] <- 2 + PHENO[CURRELIG ==

Re: [R] help with nesting if else statements

2020-09-23 Thread Ana Marija
I tried doing this: a$PHENO=ifelse(a$PLASER==2 | a$RTNPTHY==2,2,ifelse(a$CURRELIG==1 | a$RTNPTHY==1,1,NA)) which brought be closer to the solution, but now I have lines like this: FID IID CURRELIG PLASER RTNPTHY PHENO fam3151 G31511 1 NANA fam3149 G31492

[R] help with nesting if else statements

2020-09-23 Thread Ana Marija
Hello, I have a data frame as shown bellow. I want to create a new column PHENO which will be defined as follows: if CURRELIG==1 -> PHENO==1 in the above subset those that have: PLASER==2 -> PHENO==2 and those where RTNPTHY==1 -> PHENO==1 I tried doing this: a$PHENO=ifelse(a$CURRELIG==1 | a$RTNPT