Dear All
 
I now realized that it is not simple to deal with realworld problems! 
 
This what I tried without any success:
 
a <- seq(1, nvar, by = 2)
b <- seq(2, nvar, by = 2)
 
#df2 <- transform(df2, ima1p1 = df2$x1[df2$Parent1],       # Parent 1's
allele 1
      #ima2p1 = df2$x2[df2$Parent1],                  # Parent 1's allele 2
      #ima1p2 = df2$x1[df,                    # Parent 2's allele 1
      #ima2p2 = df2$x2[df2$Parent2])                 # Parent2's allele 2
                                    
out <- lapply(1:nmark, function(ind){
      n <- nvar/2
      transform(df2, ima1p1 = df2[, a[ind]][df$Parent1],   # Parent 1's
allele 1
      ima2p1 = df2[, b[ind]][df2$Parent1],                  # Parent 1's
allele 2
      ima1p2 = df2[, a[ind]][df2$Parent2],                  # Parent 2's
allele 1
      ima2p2 = df2[, a[ind]][df2$Parent2])}                  # Parent2's
allele 2
 
I could go further down because I had already an error ! I am particularly
confused how can apply the index in df2$Parent1 or df2$ parent2. 
 
Please help.
 
Thank you;
 
Umesh R 
 
 
 
 

  _____  

From: Umesh Rosyara [mailto:rosyaraur@gmail.com] 
Sent: Monday, February 28, 2011 8:01 AM
To: 'Dennis Murphy'
Cc: 'r-help@r-project.org'
Subject: stuk at another point: simple question 


Dear R-community members. 
 
I am really appreciate R-help group. Dennis has been extrremely helpful to
solve some of my questions. I am following Dennis recommendation in the
following email, yet I am stuck at another point (hope this will took me to
end of this project. 
 
Ind <- c(1:5)
Parent1 <- c(NA,NA,1,1,3)
Parent2 <- c(NA,NA,2,2,4)
y <- c(6,5,8,10,7)
M1a <- c(1,2,1,1,1)
M1b <- c(1,2,2,2,1)
M2a <- c(3,3,1,1,3)
M2b <- c(1,1,3,3,3)
M3a <- c(4,4,4,4,4)
M3b <- c(4,4,1,1,4)
M4a <- c(1,4,4,1,4)
M4b <- c(4,4,4,4,4)
 
dataf <- data.frame (Ind, Parent1, Parent2, y, M1a, M1b,M2a,M2b,
M3a,M3b,M4a, M4b) # I have more than >1000 variables pair 
 
# pair1 (M1a,M1b) pair2 (M2a, M2b), pair3 (M3a, M3b)... 
 
df2 <- transform(dataf,m1ap1 = dataf$M1a[dataf$Parent1],      
                       m1bp1 = dataf$M1b[dataf$Parent1], 
                       m1ap2 = dataf$M1a[dataf$Parent2],
                       m1bp2 = dataf$M1b[dataf$Parent2])       

# downstream calculations  
 hP1 <- ifelse(df2$m1ap1==df2$m1bp1,0,1)
 hP2 <- ifelse(df2$m1bp2==df2$m1bp2,0,1)
 t1 <- ifelse(df2$M1a==df2$m1ap1,1,0) 
 t2 <- ifelse(df2$M1b==df2$m1ap2,1,0)
 C <- (hP1*(t1-0.25)+ hP2 *(t2-0.25))
 yv <- df2$y 
 Cy <- C*yv 
 avgCy <- mean(Cy, na.rm=T)
 avgCy # I want to store this value to new dataframe with first model i.e. 
 
 
How can I loop the process to output the second pair( here M2a, M2b), third
pair (here M3a, M3b) to all pairs (I have more than 1000)
 
Mode1  avgCy
1       1.75  # from pair M1a and M1b
2             # from pair M2a and M2b
3             # from pair M3a and M3b
4             # from pair M4a and M4b
 
to the end of the file
 
Thank you in advance 
 
Umesh R 
 
  _____  

From: Dennis Murphy [mailto:djmuser@gmail.com] 
Sent: Friday, February 18, 2011 12:28 AM
To: Umesh Rosyara
Cc: r-help@r-project.org
Subject: Re: [R] recoding a data in different way: please help


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 <rosyaraur@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.



  _____  

No virus found in this message.
Checked by AVG - www.avg.com



	[[alternative HTML version deleted]]

