Skip to content
Back to formatted view

Raw Message

Message-ID: <644e1f320903200913s7eb867c9re057e59b92b2ed35@mail.gmail.com>
Date: 2009-03-20T16:13:50Z
From: jim holtman
Subject: reshape dataframe
In-Reply-To: <4CDCB6746FDEE34CA66F8B557440A60AC7F670CB35@ipgpost.ipg.lan>

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.Duijvesteijn at 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 at 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?