[R] reshape a data frame

Bert Gunter bgunter.4567 at gmail.com
Thu Jun 4 15:57:37 CEST 2015


Yes. This is basic stuff, and it seems unnecessary to run to packages for
it, Knowledge of base R should suffice. It would appear that the OP would
benefit by going through an R tutorial or two.

Slightly more economical and more general -- and trickier -- than explicit
concatenation, which could get to be a drag with a lot of columns, is this:

> colms <- match(c("bc1","bc2"),names(ex))
> exnew <- cbind(z[,-colms],bcx=unlist(ex[,colms]))

> exnew
     gIN group     bcx
bc11 A_1     A 1219.79
bc12 A_2     A 1486.84
bc13 A_3     A 1255.80
bc14 A_4     A  941.87
bc15 B_1     B  588.19
bc16 B_2     B  304.02
bc21 A_1     A  319.79
bc22 A_2     A  186.84
bc23 A_3     A  125.80
bc24 A_4     A   94.87
bc25 B_1     B 1008.19
bc26 B_2     B  314.02

Cheers,
Bert

Bert Gunter

"Data is not information. Information is not knowledge. And knowledge is
certainly not wisdom."
   -- Clifford Stoll

On Wed, Jun 3, 2015 at 3:02 PM, javascriptart25 <javascriptart25 at gmail.com>
wrote:

> You can change ex <- data.frame("gIN" = gIN, "bc1" = bc1, "bc2"=bc2,
> "group" = group)
>
> to
>
> ex <- data.frame("gIN" = c(gIN,gIN), "bcX" = c(bc1,bc2), "group" =
> c(group,group))
>
>
> On Wed, Jun 3, 2015 at 2:27 PM, hedelhusk [via R] <
> ml-node+s789695n4708145h17 at n4.nabble.com> wrote:
>
> > Hello,
> >
> > I would like to ask for some advice in reformatting a data frame such as
> > the following one:
> >
> >
> > gIN <- c("A_1","A_2","A_3","A_4","B_1","B_2")
> > bc1 <- c(1219.79, 1486.84, 1255.80, 941.87, 588.19, 304.02)
> > bc2 <- c(319.79, 186.84, 125.80, 94.87, 1008.19, 314.02)
> > group <- c("A","A","A","A","B","B")
> >
> > ex <- data.frame("gIN" = gIN, "bc1" = bc1, "bc2"=bc2, "group" = group)
> >
> > > ex
> >   gIN     bc1     bc2 group
> > 1 A_1 1219.79  319.79     A
> > 2 A_2 1486.84  186.84     A
> > 3 A_3 1255.80  125.80     A
> > 4 A_4  941.87   94.87     A
> > 5 B_1  588.19 1008.19     B
> > 6 B_2  304.02  314.02     B
> >
> > I would like to reshape this data frame where all the columns that have
> > bc1, bc2,...etc are merged into a single column (call it bcX or
> something)
> > and the other variables are kept apart, the example solution follows:
> >
> >
> > > ex_reshaped
> >   gIN     bcX     group
> > 1 A_1 1219.79       A
> > 2 A_2 1486.84       A
> > 3 A_3 1255.80       A
> > 4 A_4  941.87        A
> > 5 B_1  588.19      B
> > 6 B_2  304.02       B
> > 7 A_1 319.79       A
> > 8 A_2 186.84       A
> > 9 A_3 125.80       A
> > 10 A_4 94.87       A
> > 11 B_1 1008.19   B
> > 12 B_2 314.02     B
> >
> > Does anyone know of a package, and/or command to accomplish this?
> >
> > Thank you
> >
> >         [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > [hidden email] <http:///user/SendEmail.jtp?type=node&node=4708145&i=0>
> > mailing list -- To UNSUBSCRIBE and more, see
> > 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.
> >
> >
> > ------------------------------
> >  If you reply to this email, your message will be added to the discussion
> > below:
> > http://r.789695.n4.nabble.com/reshape-a-data-frame-tp4708145.html
> >  To start a new topic under R help, email
> > ml-node+s789695n789696h98 at n4.nabble.com
> > To unsubscribe from R, click here
> > <
> http://r.789695.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=789695&code=amF2YXNjcmlwdGFydDI1QGdtYWlsLmNvbXw3ODk2OTV8NTgxOTIwNTYy
> >
> > .
> > NAML
> > <
> http://r.789695.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml
> >
> >
>
>
>
>
> --
> View this message in context:
> http://r.789695.n4.nabble.com/reshape-a-data-frame-tp4708145p4708146.html
> Sent from the R help mailing list archive at Nabble.com.
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list