Hi Christian, I would try and do the same with the "reshape" package using "cast" (after turning one of the vars names into "value")
On Sun, Mar 8, 2009 at 4:25 PM, Christian Pilger <[email protected]>wrote: > > Dear R-experts, > > I have the following "long" data frame: > > ID <- > > c("ID001","ID001","ID001","ID001","ID001","ID001","ID001","ID001","ID001","ID001","ID001","ID002","ID002","ID002","ID002","ID002","ID002","ID002") > Var <- > > c("Var001","Var001","Var001","Var001","Var001","Var002","Var002","Var002","Var002","Var002","Var002","Var001","Var001","Var001","Var001","Var002","Var002","Var002") > Dose <- > > c("100","100","80","80","50","100","100","100","80","50","25","100","100","80","50","100","80","50") > Response <- > > c("90%","15%","90%","90%","90%","100%","100%","90%","100%","100%","70%","90%","15%","90%","90%","100%","100%","100%") > > DF <- data.frame(ID,Var,Dose,Response) > DF > > ID Var Dose Response > 1 ID001 Var001 100 90% > 2 ID001 Var001 100 15% > 3 ID001 Var001 80 90% > 4 ID001 Var001 80 90% > 5 ID001 Var001 50 90% > 6 ID001 Var002 100 100% > 7 ID001 Var002 100 100% > 8 ID001 Var002 100 90% > 9 ID001 Var002 80 100% > 10 ID001 Var002 50 100% > 11 ID001 Var002 25 70% > 12 ID002 Var001 100 90% > 13 ID002 Var001 100 15% > 14 ID002 Var001 80 90% > 15 ID002 Var001 50 90% > 16 ID002 Var002 100 100% > 17 ID002 Var002 80 100% > 18 ID002 Var002 50 100% > > >From this I wish to generate a "wide" data frame (note: repetitions at > identical "Dose" are given indepently for each "ID"): > > ID Dose Var001.Response Var002.Response > ID001 100 90% 100% > ID001 100 15% 100% > ID001 100 NA 90% > ID001 80 90% 100% > ID001 80 90% NA > ID001 50 90% 100% > ID001 25 NA 70% > ID002 100 90% 100% > ID002 100 15% NA > ID002 80 90% 100% > ID002 50 90% 100% > > I tried > > reshape(DF, timevar="Var", idvar=c("ID", "Dose"), direction="wide") > > and obtained: > > ID Dose Response.Var001 Response.Var002 > 1 ID001 100 90% 100% > 3 ID001 80 90% 100% > 5 ID001 50 90% 100% > 11 ID001 25 <NA> 70% > 12 ID002 100 90% 100% > 14 ID002 80 90% 100% > 15 ID002 50 90% 100% > > This table is close to what I need, but it lacks entries if more than one > "Response" exists for a given "Dose". > > Where is my mistake? > > Best wishes > > Christian > > -- > View this message in context: > http://www.nabble.com/reshaping-a-data-frame-with-multiple-IDs-tp22398496p22398496.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > [email protected] 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. > -- ---------------------------------------------- My contact information: Tal Galili Phone number: 972-50-3373767 FaceBook: Tal Galili My Blogs: www.talgalili.com www.biostatistics.co.il [[alternative HTML version deleted]] ______________________________________________ [email protected] 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.

