library(tidyverse)
library(readxl)
library(broom)
library(ggthemes)

# Load the dataset
psid <- read_xlsx("C:/Dropbox/DRPH/P9489 Application of Epi Research Methods II/PSID/PSID_2.17.2020.xlsx")
# create table "psidn" for plotting - use pipes
psidn <- psid %>%
  
  # Select Health Status variables from 2013, 2015, and 2017
  transmute(`2013` = ER55244, `2015` = ER62366, `2017` = ER68420)  %>%
  
  # Pivot longer  
  pivot_longer(c(`2013`,`2015`,`2017`), names_to = "year", values_to = "health_status")  %>%

  # Keep health status values (1=Excellent, 2=Very good, 3=Good, 4=Fair, 5=Poor)
  filter(health_status %in%  c(1:5))  %>%
  
  # Summarize frequencies by grouping by year and health status
  group_by(year=factor(year), health_status=factor(health_status, levels = c(1,2,3,4,5), labels = c("Excellent", "Very good", "Good", "Fair", "Poor"))) %>%
  summarise(count = n())

  # if you want to check that mappings are correct use the following statement:
  # table(psidn$year, psidn$health_status)
# Alternative 1 - use Tufte Theme for grouped bar chart (frequencies)
ggplot(psidn, aes(year, count, fill = health_status)) + 
  geom_bar(stat="identity", position = "dodge") + 
  theme_tufte() + 
  theme(legend.title = element_blank()) +
  labs(title="Self Reported Health Status: 2013-2017",
            caption="Panel Study of Income Dynamics",
            x="Year",
            y="Frequency")


# Alternative 2 - use Tufte Theme for percent stacked bar chart (population percentages)
  ggplot(psidn, aes(year, count, fill = health_status )) + 
  geom_bar(stat="identity", position = "fill") + 
  theme_tufte() + 
  theme(legend.title = element_blank()) +
  labs(title="Self Reported Health Status: 2013-2017",
            caption="Panel Study of Income Dynamics",
            x="Year",
            y="Population Proportions")

 
# Alternative 3 - use standard colors for connected points for each group (showing tendency)   
  ggplot(psidn, aes(year, count, group = health_status, color=health_status)) + 
  geom_point() + geom_line() + 
  theme(legend.title = element_blank()) +
  labs(title="Self Reported Health Status: 2013-2017",
            caption="Panel Study of Income Dynamics",
            x="Year",
            y="Frequency")

LS0tDQp0aXRsZTogIkdyYXBoaWMocykgd2l0aCB0aGUgUFNJRCINCmF1dGhvcjogIlRvbmd1YyBZYW1hbiINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCmBgYHtyfQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KHJlYWR4bCkNCmxpYnJhcnkoYnJvb20pDQpsaWJyYXJ5KGdndGhlbWVzKQ0KDQojIExvYWQgdGhlIGRhdGFzZXQNCnBzaWQgPC0gcmVhZF94bHN4KCJDOi9Ecm9wYm94L0RSUEgvUDk0ODkgQXBwbGljYXRpb24gb2YgRXBpIFJlc2VhcmNoIE1ldGhvZHMgSUkvUFNJRC9QU0lEXzIuMTcuMjAyMC54bHN4IikNCmBgYA0KDQoNCmBgYHtyfQ0KIyBjcmVhdGUgdGFibGUgInBzaWRuIiBmb3IgcGxvdHRpbmcgLSB1c2UgcGlwZXMNCnBzaWRuIDwtIHBzaWQgJT4lDQogIA0KICAjIFNlbGVjdCBIZWFsdGggU3RhdHVzIHZhcmlhYmxlcyBmcm9tIDIwMTMsIDIwMTUsIGFuZCAyMDE3DQogIHRyYW5zbXV0ZShgMjAxM2AgPSBFUjU1MjQ0LCBgMjAxNWAgPSBFUjYyMzY2LCBgMjAxN2AgPSBFUjY4NDIwKSAgJT4lDQogIA0KICAjIFBpdm90IGxvbmdlciAgDQogIHBpdm90X2xvbmdlcihjKGAyMDEzYCxgMjAxNWAsYDIwMTdgKSwgbmFtZXNfdG8gPSAieWVhciIsIHZhbHVlc190byA9ICJoZWFsdGhfc3RhdHVzIikgICU+JQ0KDQogICMgS2VlcCBoZWFsdGggc3RhdHVzIHZhbHVlcyAoMT1FeGNlbGxlbnQsIDI9VmVyeSBnb29kLCAzPUdvb2QsIDQ9RmFpciwgNT1Qb29yKQ0KICBmaWx0ZXIoaGVhbHRoX3N0YXR1cyAlaW4lICBjKDE6NSkpICAlPiUNCiAgDQogICMgU3VtbWFyaXplIGZyZXF1ZW5jaWVzIGJ5IGdyb3VwaW5nIGJ5IHllYXIgYW5kIGhlYWx0aCBzdGF0dXMNCiAgZ3JvdXBfYnkoeWVhcj1mYWN0b3IoeWVhciksIGhlYWx0aF9zdGF0dXM9ZmFjdG9yKGhlYWx0aF9zdGF0dXMsIGxldmVscyA9IGMoMSwyLDMsNCw1KSwgbGFiZWxzID0gYygiRXhjZWxsZW50IiwgIlZlcnkgZ29vZCIsICJHb29kIiwgIkZhaXIiLCAiUG9vciIpKSkgJT4lDQogIHN1bW1hcmlzZShjb3VudCA9IG4oKSkNCg0KICAjIGlmIHlvdSB3YW50IHRvIGNoZWNrIHRoYXQgbWFwcGluZ3MgYXJlIGNvcnJlY3QgdXNlIHRoZSBmb2xsb3dpbmcgc3RhdGVtZW50Og0KICAjIHRhYmxlKHBzaWRuJHllYXIsIHBzaWRuJGhlYWx0aF9zdGF0dXMpDQpgYGANCg0KDQpgYGB7cn0NCiMgQWx0ZXJuYXRpdmUgMSAtIHVzZSBUdWZ0ZSBUaGVtZSBmb3IgZ3JvdXBlZCBiYXIgY2hhcnQgKGZyZXF1ZW5jaWVzKQ0KZ2dwbG90KHBzaWRuLCBhZXMoeWVhciwgY291bnQsIGZpbGwgPSBoZWFsdGhfc3RhdHVzKSkgKyANCiAgZ2VvbV9iYXIoc3RhdD0iaWRlbnRpdHkiLCBwb3NpdGlvbiA9ICJkb2RnZSIpICsgDQogIHRoZW1lX3R1ZnRlKCkgKyANCiAgdGhlbWUobGVnZW5kLnRpdGxlID0gZWxlbWVudF9ibGFuaygpKSArDQogIGxhYnModGl0bGU9IlNlbGYgUmVwb3J0ZWQgSGVhbHRoIFN0YXR1czogMjAxMy0yMDE3IiwNCiAgICAgICAgICAgIGNhcHRpb249IlBhbmVsIFN0dWR5IG9mIEluY29tZSBEeW5hbWljcyIsDQogICAgICAgICAgICB4PSJZZWFyIiwNCiAgICAgICAgICAgIHk9IkZyZXF1ZW5jeSIpDQoNCiMgQWx0ZXJuYXRpdmUgMiAtIHVzZSBUdWZ0ZSBUaGVtZSBmb3IgcGVyY2VudCBzdGFja2VkIGJhciBjaGFydCAocG9wdWxhdGlvbiBwZXJjZW50YWdlcykNCiAgZ2dwbG90KHBzaWRuLCBhZXMoeWVhciwgY291bnQsIGZpbGwgPSBoZWFsdGhfc3RhdHVzICkpICsgDQogIGdlb21fYmFyKHN0YXQ9ImlkZW50aXR5IiwgcG9zaXRpb24gPSAiZmlsbCIpICsgDQogIHRoZW1lX3R1ZnRlKCkgKyANCiAgdGhlbWUobGVnZW5kLnRpdGxlID0gZWxlbWVudF9ibGFuaygpKSArDQogIGxhYnModGl0bGU9IlNlbGYgUmVwb3J0ZWQgSGVhbHRoIFN0YXR1czogMjAxMy0yMDE3IiwNCiAgICAgICAgICAgIGNhcHRpb249IlBhbmVsIFN0dWR5IG9mIEluY29tZSBEeW5hbWljcyIsDQogICAgICAgICAgICB4PSJZZWFyIiwNCiAgICAgICAgICAgIHk9IlBvcHVsYXRpb24gUHJvcG9ydGlvbnMiKQ0KIA0KIyBBbHRlcm5hdGl2ZSAzIC0gdXNlIHN0YW5kYXJkIGNvbG9ycyBmb3IgY29ubmVjdGVkIHBvaW50cyBmb3IgZWFjaCBncm91cCAoc2hvd2luZyB0ZW5kZW5jeSkgICANCiAgZ2dwbG90KHBzaWRuLCBhZXMoeWVhciwgY291bnQsIGdyb3VwID0gaGVhbHRoX3N0YXR1cywgY29sb3I9aGVhbHRoX3N0YXR1cykpICsgDQogIGdlb21fcG9pbnQoKSArIGdlb21fbGluZSgpICsgDQogIHRoZW1lKGxlZ2VuZC50aXRsZSA9IGVsZW1lbnRfYmxhbmsoKSkgKw0KICBsYWJzKHRpdGxlPSJTZWxmIFJlcG9ydGVkIEhlYWx0aCBTdGF0dXM6IDIwMTMtMjAxNyIsDQogICAgICAgICAgICBjYXB0aW9uPSJQYW5lbCBTdHVkeSBvZiBJbmNvbWUgRHluYW1pY3MiLA0KICAgICAgICAgICAgeD0iWWVhciIsDQogICAgICAgICAgICB5PSJGcmVxdWVuY3kiKQ0KDQpgYGANCg0K