Joel Maxuel
2018-Oct-22 20:57 UTC
[R] Transformations in Tidyverse (renaming and ordering columns)
Hi Jeff, Thanks for the input, however it does not seem we are on the same wavelength. Maybe I should have distilled my example down even further to solidify context, although given what I was trying to accomplish I believe it is all in context. At this point I am not concerned about presenting multiple sections (agreed, looping will be important) - my emphasis right now is to present just one piece in a manner that makes sense. As a result, I am finding that using `spread` to convert the flat data into a "crosstab" does not. The flat data has (IMO - at least the wider version I have locally) all the info needed to allow a sort to be enforced, and any miscellaneous data for that section, without having to customize each section individually (in essence, allow for looping). With regard to sorting, in the past hour or so I have tried the `seq` parameter (after changing `key` to the `Order` column) in `spread`, as well as the `arrange` function after `spread` but neither are helpful. I have considered a leading character in the headings to force a sort, with something to trim it from the final output, but I am not fond of that solution. Also, having the section heading outside the table to me feels like a waste of space. With 13 proposed sections in the end (120 to 140 observations), having that all in only two pages may already be a challenge. -- Cheers, Joel Maxuel [[alternative HTML version deleted]]
Jeff Newmiller
2018-Oct-22 21:17 UTC
[R] Transformations in Tidyverse (renaming and ordering columns)
If you are willing to work in the context of LaTeX output then perhaps you will find the "tables" package useful. However, while you think you have communicated clearly enough regarding what you want to accomplish, I do not, so either someone else will intuit what you want or you will create a mock-up of what you want your output to look like to remove the guesswork. On October 22, 2018 1:57:55 PM PDT, Joel Maxuel <j.maxuel at gmail.com> wrote:>Hi Jeff, > >Thanks for the input, however it does not seem we are on the same >wavelength. Maybe I should have distilled my example down even further >to >solidify context, although given what I was trying to accomplish I >believe >it is all in context. > >At this point I am not concerned about presenting multiple sections >(agreed, looping will be important) - my emphasis right now is to >present >just one piece in a manner that makes sense. As a result, I am finding >that using `spread` to convert the flat data into a "crosstab" does >not. > >The flat data has (IMO - at least the wider version I have locally) all >the >info needed to allow a sort to be enforced, and any miscellaneous data >for >that section, without having to customize each section individually (in >essence, allow for looping). With regard to sorting, in the past hour >or >so I have tried the `seq` parameter (after changing `key` to the >`Order` >column) in `spread`, as well as the `arrange` function after `spread` >but >neither are helpful. > >I have considered a leading character in the headings to force a sort, >with >something to trim it from the final output, but I am not fond of that >solution. Also, having the section heading outside the table to me >feels >like a waste of space. With 13 proposed sections in the end (120 to >140 >observations), having that all in only two pages may already be a >challenge. > >-- >Cheers, >Joel Maxuel-- Sent from my phone. Please excuse my brevity.
Joel Maxuel
2018-Oct-22 23:55 UTC
[R] Transformations in Tidyverse (renaming and ordering columns)
For clarity sake. More show (with example closer to reality), less tell. :^) ## Current:> library(knitr) > library(tidyverse)?? Conflicts ????????????????????????????????????????????????????????????????????? tidyverse_conflicts() ?? x dplyr::filter() masks stats::filter() x dplyr::lag() masks stats::lag()> library(tibble) > library(dplyr) > > testset <- as_tibble(tribble(~SN, ~Section, ~Order, ~Observation, ~Seq,~Label, ~Value, + 2, "For Reporting Quarter", 1, "One", 1, "Western", 163, + 2, "For Reporting Quarter", 1, "One", 2, "Northern", 105, + 2, "For Reporting Quarter", 1, "One", 3, "Eastern", 121, + 2, "For Reporting Quarter", 1, "One", 4, "Southern", 74, + 2, "For Reporting Quarter", 2, "Two", 1, "Western", 147, + 2, "For Reporting Quarter", 2, "Two", 2, "Northern", 100, + 2, "For Reporting Quarter", 2, "Two", 3, "Eastern", 106, + 2, "For Reporting Quarter", 2, "Two", 4, "Southern", 70, + 2, "For Reporting Quarter", 3, "Three", 1, "Western", 119, + 2, "For Reporting Quarter", 3, "Three", 2, "Northern", 82, + 2, "For Reporting Quarter", 3, "Three", 3, "Eastern", 90, + 2, "For Reporting Quarter", 3, "Three", 4, "Southern", 65))> testset %>% select(Observation, Label, Value) %>% spread(key=Observation,value=Value) # A tibble: 4 x 4 Label One Three Two <chr> <dbl> <dbl> <dbl> 1 Eastern 121 90 106 2 Northern 105 82 100 3 Southern 74 65 70 4 Western 163 119 147>## Intended: # A tibble: 4 x 4 For Reporting Quarter One Two Three <chr> <dbl> <dbl> <dbl> 1 Western 163 147 119 2 Northern 105 100 82 3 Eastern 121 106 90 4 Southern 74 70 65>## Unfortunately I don't know how to get there from here. Section, Order and Seq are there to assist with getting the data to the right output programmatically, however I don't know how to make use of them. Hope this helps. -- Cheers, Joel Maxuel On Mon, Oct 22, 2018 at 6:18 PM Jeff Newmiller <jdnewmil at dcn.davis.ca.us> wrote:> If you are willing to work in the context of LaTeX output then perhaps you > will find the "tables" package useful. However, while you think you have > communicated clearly enough regarding what you want to accomplish, I do > not, so either someone else will intuit what you want or you will create a > mock-up of what you want your output to look like to remove the guesswork. > >[[alternative HTML version deleted]]