Does this do what you want: > x<-data.frame(id=c(1,2,3), snp1=c("AA","GG", + "AG"),snp2=c("GG","AG","GG"),snp3=c("GG","AG","AA")) > do.call(rbind, apply(x, 1, function(.row){ + data.frame(c(.row[1], .row[1]), + strsplit(.row[2], ''), + strsplit(.row[3], ''), + strsplit(.row[4], '')) + })) c..row.1....row.1.. snp1 snp2 snp3 1 1 A G G 2 1 A G G 3 2 G A A 4 2 G G G 5 3 A G A 6 3 G G A
On Fri, Mar 20, 2009 at 10:29 AM, Duijvesteijn, Naomi <naomi.duijveste...@ipg.nl> wrote: > > Hi, > > > I have a large dataset on which I would like to do the following: > > > x<-data.frame(id=c(1,2,3), snp1=c("AA","GG", > "AG"),snp2=c("GG","AG","GG"),snp3=c("GG","AG","AA")) > > > x > > id snp1 snp2 snp3 > > 1 1 AA GG GG > > 2 2 GG AG AG > > 3 3 AG GG AA > > > And then reshape the dataset in such a way that the individuals get 2 > observations for every snp by splitting the genotypes (in this case): > > > id snp1 snp2 snp3 > > 1 A G A > > 1 A G G > > 2 G A G > > 2 G G G > > 3 G A A > > 3 G G A > > > It is probably quite easy to solve, but I can’t get it right… > > > Thanks for your help and valuable time! > > > Naomi Duijvesteijn > > > > > > > Disclaimer: De informatie opgenomen in dit bericht (en bijlagen) kan > vertrouwelijk zijn en is uitsluitend bestemd voor de geadresseerde(n). > Indien u dit bericht ten onrechte ontvangt, wordt u geacht de inhoud niet te > gebruiken, de afzender direct te informeren en het bericht te vernietigen. > Aan dit bericht kunnen geen rechten of plichten worden ontleend. > > ---------------------------------------------------------------------------- > ---------------------------- > > Disclaimer: The information contained in this message may be confidential > and is intended to be exclusively for the addressee. Should you receive this > message unintentionally, you are expected not to use the contents herein, to > notify the sender immediately and to destroy the message. No rights can be > derived from this message. > > ______________________________________________ > 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. > > -- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem that you are trying to solve? ______________________________________________ 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.