Just a correction. My expected outdata frame was somehow distorted to a
single, one column. So correct one is:
 
marker1a         markerb         marker2a        marker2b       
1        1       1       1      
1        3       1       3      
3        3       3       3      
3        3       3       3      
1        3       1       3      
1        3       1       3      
 
Thanks;
 
Umesh R 
 
  _____  

From: Umesh Rosyara [mailto:rosyar...@gmail.com] 
Sent: Friday, February 18, 2011 10:09 PM
To: 'Joshua Wiley'
Cc: 'r-help@r-project.org'
Subject: RE: [R] recoding a data in different way: please help


Hi Josh and R community members 
 
Thank you for quick response. I am impressed with the help. 
 
To solve my problems, I tried recode options and I had the following problem
and which motivated me to leave it. Thank you for remind me the option
again, might help to solve my problem in different way. 
 
marker1 <- c("AA", "AC", "CC", "CC", "AC", "AC")

marker2 <- c("AA", "AC", "CC", "CC", "AC", "AC")

dfr <- data.frame(cbind(marker1, marker2))

Objective: replace A with 1, C with 3, and split AA into 1 1 (two columns
numeric). So the intended output for the above dataframe is:   



marker1a
markerb
marker2a
marker2b

1
1
1
1

1
3
1
3

3
3
3
3

3
3
3
3

1
3
1
3

1
3
1
3

I tried the following: 

 for(i in 1:length(dfr)) 
   {
     dfr[[i]]=recode (dfr[[i]],"c('AA')= '1,1'; c('AC')= '1,3'; c('CA')=
'1,3';  c('CC')= '3,3' ")
}

write.table(dfr,"dfr.out", sep=" ,", col.names = T) 
dfn=read.table("dfr.out",header=T, sep="," ) 

# just trying to cheat R, unfortunately the marker1 and marker columns
remained non-numeric, even when opened in excel !!


Unfortunately I got the following result ! 

   marker1 marker2
1     1,1      1,1
2     1,2      1,2
3     2,2      2,2
4     2,2      2,2
5     1,2      1,2
6     1,2      1,2

 
Sorry to bother all of you, but simple things are being complicated these
days to me. 
 
Thank you so much
Umesh R 

 
  _____  

From: Joshua Wiley [mailto:jwiley.ps...@gmail.com] 
Sent: Friday, February 18, 2011 12:15 AM
Cc: r-help@r-project.org
Subject: Re: [R] recoding a data in different way: please help



Dear Umesh,

I could not figure out exactly what your recoding scheme was, so I do
not have a specific solution for you.  That said, the following
functions may help you get started.

?ifelse # vectorized and different from using if () statements
?if #
?Logic ## logical operators for your tests
## if you install and load the "car" package by John Fox
?recode # a function for recoding in package "car"

I am sure it is possible to string together some massive series of if
statements and then use a for loop, but that is probably the messiest
and slowest possible way.  I suspect there will be faster, neater
options, but I cannot say for certain without having a better feel for
how all the conditions work.

Best regards,

Josh

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



--
Joshua Wiley
Ph.D. Student, Health Psychology
University of California, Los Angeles
http://www.joshuawiley.com/ 

  _____  

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



        [[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.

Reply via email to