[R] separate and gather functions
reichm@@j m@iii@g oii sbcgiob@i@@et
reichm@@j m@iii@g oii sbcgiob@i@@et
Tue Aug 13 04:46:10 CEST 2019
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]]
More information about the R-help
mailing list