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 == 1 & RTNPTHY == 1] <- 1 + }) > dat FID IID CURRELIG PLASER RTNPTHY PHENO 1 fam5610 G5610 1 1 1 1 2 fam5614 G5614 1 2 2 2 3 fam5615 G5615 1 1 1 1 4 fam5618 G5618 1 1 2 1 5 fam5621 G5621 1 1 1 1 6 fam5624 G5624 1 1 2 1 7 fam5625 G5625 1 1 1 1 8 fam5628 G5628 1 2 2 2 9 fam5633 G5633 1 2 2 2 10 fam5634 G5634 1 1 1 1 11 fam5635 G5635 2 2 2 NA 12 fam5636 G5636 1 1 1 1 13 fam5641 G5641 1 1 1 1 14 fam5645 G5645 2 1 2 NA 15 fam5646 G5646 2 2 2 NA 16 fam5654 G5654 1 2 2 2 17 fam5655 G5655 1 2 2 2 18 fam5656 G5656 2 2 2 NA 19 fam5658 G5658 1 1 1 1 20 fam5659 G5659 2 2 2 NA 21 fam5660 G5660 1 1 1 1 22 fam5661 G5661 2 2 2 NA 23 fam5664 G5664 1 1 1 1 24 fam5666 G5666 1 1 1 1 25 fam5667 G5667 1 1 2 1 26 fam5670 G5670 1 1 1 1 27 fam5671 G5671 1 1 2 1 28 fam5672 G5672 1 1 2 1 29 fam5673 G5673 1 1 1 1 30 fam5680 G5680 1 2 2 2 31 fam5686 G5686 1 2 2 2 32 fam5687 G5687 1 2 2 2 33 fam5688 G5688 1 1 2 1 34 fam5693 G5693 2 1 1 NA 35 fam5695 G5695 1 1 1 1 36 fam5697 G5697 1 1 1 1 37 fam5700 G5700 1 2 2 2 38 fam5701 G5701 1 1 1 1 39 fam5706 G5706 1 1 2 1 40 fam5709 G5709 1 1 1 1 41 fam5713 G5713 1 1 1 1 42 fam5715 G5715 1 1 1 1 43 fam5718 G5718 1 1 1 1 Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Wed, Sep 23, 2020 at 9:44 AM Ana Marija <sokovic.anamar...@gmail.com> wrote: > 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$RTNPTHY==1 ,1,ifelse(a$PLASER==2 | > a$RTNPTHY==2,2,NA)) > > but this give me some lines where I am not seeing results that I want, > for example: > FID IID CURRELIG PLASER RTNPTHY PHENO > fam5628 G5628 1 2 2 1 > > here the PHENO should be =2 because RTNPTHY==2 and PLASER==2 > PHENO should be ==2 when either RTNPTHY==2 or PLASER==2 > > another wrong line is this: > FID IID CURRELIG PLASER RTNPTHY PHENO > fam5706 G5706 1 1 2 1 > > again RTNPTHY ==2 and PHENO==1 instead of 2. > > My data looks like this: > FID IID CURRELIG PLASER RTNPTHY > fam5610 G5610 1 1 1 > fam5614 G5614 1 2 2 > fam5615 G5615 1 1 1 > fam5618 G5618 1 1 2 > fam5621 G5621 1 1 1 > fam5624 G5624 1 1 2 > fam5625 G5625 1 1 1 > fam5628 G5628 1 2 2 > fam5633 G5633 1 2 2 > fam5634 G5634 1 1 1 > fam5635 G5635 2 2 2 > fam5636 G5636 1 1 1 > fam5641 G5641 1 1 1 > fam5645 G5645 2 1 2 > fam5646 G5646 2 2 2 > fam5654 G5654 1 2 2 > fam5655 G5655 1 2 2 > fam5656 G5656 2 2 2 > fam5658 G5658 1 1 1 > fam5659 G5659 2 2 2 > fam5660 G5660 1 1 1 > fam5661 G5661 2 2 2 > fam5664 G5664 1 1 1 > fam5666 G5666 1 1 1 > fam5667 G5667 1 1 2 > fam5670 G5670 1 1 1 > fam5671 G5671 1 1 2 > fam5672 G5672 1 1 2 > fam5673 G5673 1 1 1 > fam5680 G5680 1 2 2 > fam5686 G5686 1 2 2 > fam5687 G5687 1 2 2 > fam5688 G5688 1 1 2 > fam5693 G5693 2 1 1 > fam5695 G5695 1 1 1 > fam5697 G5697 1 1 1 > fam5700 G5700 1 2 2 > fam5701 G5701 1 1 1 > fam5706 G5706 1 1 2 > fam5709 G5709 1 1 1 > fam5713 G5713 1 1 1 > fam5715 G5715 1 1 1 > fam5718 G5718 1 1 1 > > Please advise, > Ana > > ______________________________________________ > 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. > [[alternative HTML version deleted]] ______________________________________________ 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.