[R] separate and gather functions

Eric Berger er|cjberger @end|ng |rom gm@||@com
Tue Aug 13 15:29:21 CEST 2019


Chapeau Ista :-)

On Tue, Aug 13, 2019 at 4:22 PM Ista Zahn <istazahn using gmail.com> wrote:

> How about
>
> > library(tidyr)
> > separate_rows(d, Col2)
>       Col1      Col2
> 1 Agency A Function1
> 2 Agency A Function2
> 3 Agency A Function3
> 4 Agency A Function4
> 5 Agency B Function2
> 6 Agency B Function4
> 7 Agency C Function1
> 8 Agency C Function3
> 9 Agency C Function4
>
>
> On Mon, Aug 12, 2019 at 11:06 PM <reichmanj using sbcglobal.net> wrote:
> >
> > William
> >
> >
> >
> > Yes that works a little better as I don’t have to create notional
> variables. Thank you
> >
> >
> >
> > Jeff
> >
> >
> >
> > From: William Dunlap <wdunlap using tibco.com>
> > Sent: Monday, August 12, 2019 6:46 PM
> > To: Jeff Reichman <reichmanj using sbcglobal.net>
> > Cc: r-help using r-project.org
> > Subject: Re: [R] separate and gather functions
> >
> >
> >
> > This one uses only core R functions.  Does that count toward "elegance"?
> >
> >
> >
> > > # your data, I assume, in a form one can copy and paste into R
> >
> > > d <- data.frame(stringsAsFactors = FALSE,
> >     Col1 = c("Agency A", "Agency B", "Agency C"),
> >     Col2 = c("Function1, Function2, Function3, Function4",
> >         "Function2, Function4", "Function1, Function3, Function4"))
> >
> > > # split Col2 by comma following by any number of spaces
> >
> > > tmp <- strsplit(d$Col2, split=", *")
> > > data.frame(Col1 = rep(d$Col1, lengths(tmp)), Col2 = unlist(tmp),
> stringsAsFactors=FALSE)
> >       Col1      Col2
> > 1 Agency A Function1
> > 2 Agency A Function2
> > 3 Agency A Function3
> > 4 Agency A Function4
> > 5 Agency B Function2
> > 6 Agency B Function4
> > 7 Agency C Function1
> > 8 Agency C Function3
> > 9 Agency C Function4
> >
> >
> >
> > Bill Dunlap
> > TIBCO Software
> > wdunlap tibco.com <http://tibco.com>
> >
> >
> >
> >
> >
> > On Mon, Aug 12, 2019 at 4:23 PM <reichmanj using sbcglobal.net <mailto:
> reichmanj using sbcglobal.net> > wrote:
> >
> > R-Help Forum
> >
> >
> >
> > I have a data set from which I have extracted two columns Column 1 is a
> > listing of Federal agencies and Column 2 lists functions like this
> >
> >
> >
> > Col1                       Col2
> >
> > Agency A             Function1, Function2, Function3, Function4
> >
> > Agency B              Function2, Function4
> >
> > Agency C              Function1, Function3, Function4
> >
> >
> >
> > What I need is a long list like this
> >
> >
> >
> > Col1                       Col2
> >
> > Agency A             Function1
> >
> > Agency A             Function2
> >
> > Agency 4              Function3 etc
> >
> >
> >
> > Is there a more elegant /efficient way other than what I did which was to
> > separate Col2 into separate columns and then gather the data back up
> >
> >
> >
> > myDat3 <- separate(data= myDat2, col = type, into = c("x1", "x2", "x3",
> > "x4", "x5"), sep = ",")
> >
> > myDat4 <- gather(data=myDat3, key="type", value = "Value",
> > "x1","x2","x3","x4","x5", na.rm = TRUE)
> >
> >
> >
> > while it works, looking for a more elegant solution, if there is one
> >
> >
> >
> > Jeff
> >
> >
> >         [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-help using r-project.org <mailto:R-help using 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]]
> >
> > ______________________________________________
> > R-help using 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.
>
> ______________________________________________
> R-help using 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