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
<christian.pilger@gmx.net>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.
>
> ______________________________________________
> 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.
>



-- 
----------------------------------------------


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]]


