Hi: This is as far as I could get:
df <- read.table(textConnection(" Individual Parent1 Parent2 mark1 mark2 1 0 0 12 11 2 0 0 11 22 3 0 0 13 22 4 0 0 13 11 5 1 2 11 12 6 1 2 12 12 7 3 4 11 12 8 3 4 13 12 9 1 4 11 12 10 1 4 11 12"), header = TRUE) df2 <- transform(df, Parent1 = replace(Parent1, Parent1 == 0, NA), Parent2 = replace(Parent2, Parent2 == 0, NA)) df2 <- transform(df2, imark1p1 = df2$mark1[df2$Parent1], # Parent 1's mark1 imark1p2 = df2$mark1[df2$Parent2], # Parent 2's mark1 imark2p1 = df2$mark2[df2$Parent1], # Parent 1's mark2 imark2p2 = df2$mark2[df2$Parent2]) # Parent 2's mark2 I created df2 so as not to overwrite the original in case of a mistake. At this point, you have several sets of vectors that you can compare; e.g., mark1 with imark1p1 and imark1p2. Like Josh, I couldn't make heads or tails out of what these logical tests were meant to output, but perhaps this gives you a broader template with which to work. At this point, you can probably remove the rows corresponding to the parents. I believe ifelse() is your friend here - it can perform logical tests in a vectorized fashion. As long as the tests are consistent from one individual to the next, it's likely to be an efficient route. HTH, Dennis On Thu, Feb 17, 2011 at 6:21 PM, Umesh Rosyara <rosyar...@gmail.com> wrote: > Dear R users > > The following question looks simple but I have spend alot of time to solve > it. I would highly appeciate your help. > > I have following dataset from family dataset : > > Here we have individuals and their two parents and their marker scores > (marker1, marker2,....and so on). 0 means that their parent information not > available. > > > Individual Parent1 Parent2 mark1 mark2 > 1 0 0 12 11 > 2 0 0 11 22 > 3 0 0 13 22 > 4 0 0 13 11 > 5 1 2 11 12 > 6 1 2 12 12 > 7 3 4 11 12 > 8 3 4 13 12 > 9 1 4 11 12 > 10 1 4 11 12 > > I want to recode mark1 and other mark2.....and so on column by looking > indvidual parent (Parent1 and Parent2). > > For example > > Take case of Individual 5, who's Parent 1 is 1 (has mark1 score 12) and > Parent 2 is 2 (has mark1 score 11). Individual 5 has mark1 score 11. > Suppose > I have following condition to recode Individual 5's mark1 score: > > For mark1 variable, If Parent1 score "11" and Parent2 score "22" and recode > indvidual 5's score, "12"=1, else 0 > If Parent1 score "12" and Parent2 score > "22" and recode individual 5's score, "22"=1, "12"= 0.5, else 0 > .........................more conditions > > Similarly the pointer should move from individual 5 to n individuals at the > end of the file. > > Thank you in advance > > Umesh R > > > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@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. > [[alternative HTML version deleted]] ______________________________________________ R-help@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.