On Nov 29, 2010, at 1:36 PM, Jim Moon wrote:

Thank you for the suggestion, Bill. The result is not quite what I would like. Here's sample code for you or anyone else who may be interested:

Al1 = c('A','C','C','C')
Al2 = c('G','G','G','T')
Freq1 = c(0.0078,0.0567,0.9434,0.9908)
MAF = c(0.0078,0.0567,0.0566,0.0092)
m1 = data.frame(Al1=Al1, Al2=Al2,Freq1=Freq1,MAF=MAF,major_allele='')
m1

Al1 Al2  Freq1    MAF major_allele
1   A   G 0.0078 0.0078
2   C   G 0.0567 0.0567
3   C   G 0.9434 0.0566
4   C   T 0.9908 0.0092


Using the suggestion involving "with()" (I swapped Al1 and Al2 from before, but this does not affect the nature of the output):

m1$major_allele <- with(m1, ifelse(Freq1==MAF, Al2, Al1));m1

 Al1 Al2  Freq1    MAF major_allele

I suspect that you have just been bitten by the data.frame- stringsAsFactors=TRUE crocodile. Since you are comparing floating point numbers, you are also wading in rivers where floating-point crocodiles are also hungry and searching out their next victim.

--
David.


1   A   G 0.0078 0.0078            1
2   C   G 0.0567 0.0567            1
3   C   G 0.9434 0.0566            2
4   C   T 0.9908 0.0092            2


The output I desire is:
 Al1 Al2  Freq1    MAF major_allele
1   A   G 0.0078 0.0078            G
2   C   G 0.0567 0.0567            G
3   C   G 0.9434 0.0566            C
4   C   T 0.9908 0.0092            C


Jim


-----Original Message-----
From: William Dunlap [mailto:wdun...@tibco.com]
Sent: Monday, November 29, 2010 10:02 AM
To: Jim Moon
Subject: RE: [R] how to use by() ?

m1$major_allele <- with(m1, ifelse(Freq1==MAF, Al1, Al2))

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com

-----Original Message-----
From: r-help-boun...@r-project.org
[mailto:r-help-boun...@r-project.org] On Behalf Of Jim Moon
Sent: Monday, November 29, 2010 9:44 AM
To: r-help@r-project.org
Subject: [R] how to use by() ?

Hello, All!

How might one accomplish this using the by() function?
m1 is a data frame.

# populate column "m1$major_allele"
for ( i in 1:length(m1$major_allele)) {
 if ( m1$Freq1[i] == m1$MAF[i]){
   m1$major_allele[i] = m1$Al1[i]
 }
 else{
    m1$major_allele[i] = m1$Al2[i]
 }
}


Jim

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


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

David Winsemius, MD
West Hartford, CT

______________________________________________
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