/lecture_notes/Data_Reshaping.R

https://github.com/SISBID/Module1 · R · 116 lines · 54 code · 41 blank · 21 comment · 0 complexity · 43515f539703da57d5ea4a4ef296c448 MD5 · raw file

  1. ## ---- echo = FALSE, include=FALSE---------------------------------------------
  2. library(knitr)
  3. library(readr)
  4. opts_chunk$set(comment = "")
  5. library(tidyverse)
  6. ## ---- echo = FALSE, message=FALSE---------------------------------------------
  7. library(tidyverse)
  8. ## ---- echo = FALSE------------------------------------------------------------
  9. ex_wide = tibble(State = "Alabama",
  10. June_vacc_rate = "37.2%",
  11. May_vacc_rate = "36.0%",
  12. April_vacc_rate = "32.4%"
  13. )
  14. ex_long = pivot_longer(ex_wide, cols = c(June_vacc_rate, May_vacc_rate, April_vacc_rate))
  15. ## ---- echo = FALSE------------------------------------------------------------
  16. ex_wide
  17. ## ---- echo = FALSE------------------------------------------------------------
  18. ex_long
  19. ## ---- echo = FALSE------------------------------------------------------------
  20. ex_wide = tibble(State = c("Alabama", "Alaska"),
  21. June_vacc_rate = c("37.2%", "47.5%"),
  22. May_vacc_rate = c("36.0%", "46.2%"),
  23. April_vacc_rate = c("32.4%", "41.7%")
  24. )
  25. ex_long = pivot_longer(ex_wide, cols = c(June_vacc_rate, May_vacc_rate, April_vacc_rate))
  26. ## ---- echo = FALSE------------------------------------------------------------
  27. ex_wide
  28. ## ---- echo = FALSE------------------------------------------------------------
  29. ex_long
  30. ## ---- fig.alt="Wide versus long data rearanges the position of column names and row content.", out.width = "60%", echo = FALSE, fig.align='center'----
  31. knitr::include_graphics("media/Reshape_pivot.jpg")
  32. ## ---- fig.alt="Wide versus long data rearanges the position of column names and row content, animated.", out.width = "50%", echo = FALSE, fig.align='center'----
  33. knitr::include_graphics("media/Reshape_pivot_animated.gif")
  34. ## ---- echo = FALSE------------------------------------------------------------
  35. ex_wide
  36. ## ---- echo = FALSE------------------------------------------------------------
  37. ex_long
  38. ## ---- message = FALSE---------------------------------------------------------
  39. circ = read_csv(
  40. paste0("http://jhudatascience.org/intro_to_r/",
  41. "data/Charm_City_Circulator_Ridership.csv"))
  42. head(circ, 5)
  43. ## -----------------------------------------------------------------------------
  44. long = circ %>%
  45. pivot_longer(starts_with(c("orange","purple","green","banner")),
  46. names_to = "var", values_to = "number")
  47. long
  48. ## -----------------------------------------------------------------------------
  49. long = circ %>% pivot_longer(!c(day, date, daily),
  50. names_to = "var", values_to = "number")
  51. long
  52. ## -----------------------------------------------------------------------------
  53. long %>% count(var)
  54. ## -----------------------------------------------------------------------------
  55. long = long %>% mutate(
  56. var = str_replace(var, "Board", "_Board"),
  57. var = str_replace(var, "Alight", "_Alight"),
  58. var = str_replace(var, "Average", "_Average")
  59. )
  60. long
  61. ## -----------------------------------------------------------------------------
  62. long =
  63. long %>%
  64. separate(var, into = c("line", "type"), sep = "_")
  65. long
  66. ## -----------------------------------------------------------------------------
  67. reunited = long %>%
  68. unite(var, line, type, sep = "_")
  69. reunited
  70. ## -----------------------------------------------------------------------------
  71. wide = long %>% pivot_wider(names_from = "type",
  72. values_from = "number")
  73. wide
  74. ## ---- fig.alt="Long form sandwich", out.width = "50%", echo = FALSE, fig.align='center'----
  75. knitr::include_graphics("media/Reshape_pivot_sandwich.png")