Re: [R] reshape question

From: Chuck Cleland <ccleland_at_optonline.net>
Date: Fri, 08 Feb 2008 09:28:26 -0500

On 2/8/2008 9:15 AM, Ista Zahn wrote:
> I know there are a lot of reshape questions on the mailing list, but I
> haven't been able to find an answer to this particular issue.
>
> I am trying to get a datafame structured like this:
>
> > sub <- rep(1:5)
> > ta1 <- rep(1,5)
> > ta2 <- rep(2,5)
> > tb1<- rep(3,5)
> > tb2 <- rep(4,5)
> > DF <- data.frame(sub,ta1,ta2,tb1,tb2)
> > DF
> sub ta1 ta2 tb1 tb2
> 1 1 1 2 3 4
> 2 2 1 2 3 4
> 3 3 1 2 3 4
> 4 4 1 2 3 4
> 5 5 1 2 3 4
>
> into a form like this:
>
> sub time x1 x2
> 1.1 1 1 1 3
> 1.2 1 2 2 4
> 2.1 2 1 1 3
> 2.2 2 2 2 4
> 3.1 3 1 1 3
> 3.2 3 2 2 4
> 4.1 4 1 1 3
> 4.2 4 2 2 4
> 5.1 5 1 1 3
> 5.2 5 2 2 4
>
> using the "reshape" command. But when I try reshaping I don't get the
> desired structure:
>
> > DF.L <- reshape(DF, varying = 2:5, idvar="sub", v.names = c("x1",
> "x2"), times=c(1,2), direction="long")
> > library(doBy)
> > orderBy(~sub, data=DF.L)
> sub time x1 x2
> 1.1 1 1 1 2
> 1.2 1 2 3 4
> 2.1 2 1 1 2
> 2.2 2 2 3 4
> 3.1 3 1 1 2
> 3.2 3 2 3 4
> 4.1 4 1 1 2
> 4.2 4 2 3 4
> 5.1 5 1 1 2
> 5.2 5 2 3 4

   The varying argument to reshape() can be a list. For example:

DF.long <- reshape(DF, varying = list(c("ta1","ta2"),

                                       c("tb1","tb2")),
                        idvar="sub",
                        v.names = c("x1","x2"),
                        times=c(1,2),
                        direction="long")

DF.long[order(DF.long$sub),]

     sub time x1 x2

1.1   1    1  1  3
1.2   1    2  2  4
2.1   2    1  1  3
2.2   2    2  2  4
3.1   3    1  1  3
3.2   3    2  2  4
4.1   4    1  1  3
4.2   4    2  2  4
5.1   5    1  1  3
5.2   5    2  2  4

> I can get the desired result by rearranging the original dataframe, like
> > DF2 <- data.frame(sub,ta1,tb1,ta2,tb2)
>
> before running the reshape command, but I'm hoping someone knows a way
> to do the desired reshaping without this step, as it becomes very time
> consuming with large numbers of repeated measurements.
>
> Thanks,
> Ista
>
> ______________________________________________
> 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.

-- 
Chuck Cleland, Ph.D.
NDRI, Inc.
71 West 23rd Street, 8th floor
New York, NY 10010
tel: (212) 845-4495 (Tu, Th)
tel: (732) 512-0171 (M, W, F)
fax: (917) 438-0894

______________________________________________
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.
Received on Fri 08 Feb 2008 - 14:37:21 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Fri 08 Feb 2008 - 15:30:12 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive