[R] separate and gather functions

William Dunlap wdun|@p @end|ng |rom t|bco@com
Tue Aug 13 01:45:55 CEST 2019


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


On Mon, Aug 12, 2019 at 4:23 PM <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 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