On Feb 19, 2011, at 8:40 AM, Umesh Rosyara wrote:

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      


func <- function(x) {sapply( strsplit(x, ""),
                                    match, table= c("A", NA, "C"))}
t( apply(dfr, 1, func) )

     [,1] [,2] [,3] [,4]
[1,]    1    1    1    1
[2,]    1    3    1    3
[3,]    3    3    3    3
[4,]    3    3    3    3
[5,]    1    3    1    3
[6,]    1    3    1    3


It's amatrix rather than a dataframe and doesn't have colnames but that should be trivial to fix.


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.

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