# Figure 4
### Packages
library(tidyverse) #for most of the important functions
library(gt) #making tables
library(janitor) #wrangling
library(patchwork) #plots
library(dplyr)
library(gtExtras)
### Renaming data
data4 <- data %>%
rename(Gender = gender,
Age = age_categories,
Has_child = Has_child,
Employment_status = Working,
Key_worker = Key_worker,
Education = degree,
Region = region,
Total_outings = Going_out_total,
groceries = Adhere_shop_groceries,
shop_other = Adhere_shop_other,
meetup = Adhere_meet_friends,
symptoms = Sx_covid_nomissing,
Thinks_have_had_COVID19 = Ever_covid) %>%
mutate(Thinks_have_had_COVID19 = case_when(Thinks_have_had_COVID19 == 0 ~ "No",
Thinks_have_had_COVID19 == 1 ~ "Yes")) %>%
mutate(groceries = case_when(groceries == 0 ~ "One or fewer times in past week",
groceries == 1 ~ "Two or more times in past week")) %>%
mutate(shop_other = case_when(shop_other == 0 ~ "Not at all in past week",
shop_other == 1 ~ "1 or more days in past week")) %>%
mutate(meetup = case_when(meetup == 0 ~ "Not at all in past week",
meetup == 1 ~ "One or more times in past week")) %>%
mutate(symptoms = case_when(symptoms == 0 ~ "Did not correctly identify symptoms",
symptoms == 1 ~ "Correctly identified symptoms")) %>%
select(Thinks_have_had_COVID19, groceries, shop_other, meetup, symptoms)
### creating data frames
#data groceries
datagroceries <- data4 %>%
select(Thinks_have_had_COVID19, groceries) %>%
arrange(factor(groceries, levels = c("One or fewer time in past week", "Two or more in past week")))
tgroceries <- datagroceries %>%
tabyl(Thinks_have_had_COVID19, groceries)
gtgroceries <- gt(tgroceries)
datagroceries <- gtgroceries$"_data"
#data shop_other
datashop <- data4 %>%
select(Thinks_have_had_COVID19, shop_other) %>%
arrange(factor(shop_other, levels = c("Not at all in past week", "1 or more days in past week")))
tshop <- datashop %>%
tabyl(Thinks_have_had_COVID19, shop_other)
gtshop <- gt(tshop)
datashop <- gtshop$"_data"
#data meetup
datameetup <- data4 %>%
select(Thinks_have_had_COVID19, meetup) %>%
arrange(factor(meetup, levels = c("Not at all in past week", "1 or more days in past week")))
tmeetup <- datameetup %>%
tabyl(Thinks_have_had_COVID19, meetup)
gtmeetup <- gt(tmeetup)
datameetup <- gtmeetup$"_data"
#data symptoms
datasymptoms <- data4 %>%
select(Thinks_have_had_COVID19, symptoms) %>%
arrange(factor(symptoms, levels = c("Did not correctly identify symptoms", "Correctly identified symptoms")))
tsymptoms <- datasymptoms %>%
tabyl(Thinks_have_had_COVID19, symptoms)
gtsymptoms <- gt(tsymptoms)
datasymptoms <- gtsymptoms$"_data"
### percentages
perGroc <- with(data4, table(Thinks_have_had_COVID19,groceries))
pGroc <- prop.table(perGroc, 1)*100
perShop <- with(data4, table(Thinks_have_had_COVID19, shop_other))
pShop <- prop.table(perShop, 1)*100
perMeet <- with(data4, table(Thinks_have_had_COVID19, meetup))
pMeet <- prop.table(perMeet, 1)*100
perSymp <- with(data4, table(Thinks_have_had_COVID19,symptoms))
pSymp <- prop.table(perSymp, 1)*100
### individual tables
#Shopping for groceries
tibGroc <- rbind(pGroc)
tibGroc <- as_tibble(tibGroc)
tibGroc <- tibGroc %>%
rename("Less than once" = "One or fewer times in past week",
"Two or more" = "Two or more times in past week")
gtGroc <- gt(tibGroc)
tibGroc1 <- gtGroc$'_data'
listgroceries <- list(datagroceries)
tabgroceries <- rbindlist(listgroceries, use.names = FALSE)
tabgroceries1 <- cbind(tabgroceries, tibGroc1)
gttab1 <- gt(tabgroceries1) %>%
tab_spanner(
label = "Shopping for groceries/pharmacy",
columns = c(2:3)
) %>%
cols_label(
"One or fewer times in past week" = "One or fewer days in the past weeks n=2389 (%)"
) %>%
cols_label(
"Two or more times in past week" = "On two or more days in the last week n=3760 (%)"
) %>%
gt_merge_stack(col1 = "One or fewer times in past week",
col2 = "Less than once"
) %>%
gt_merge_stack(col1 = "Two or more times in past week",
col2 = "Two or more")
#Shopping for other
tibshop <- rbind(pShop)
tibshop <- as_tibble(tibshop)
tibshop <- tibshop %>%
rename("Not at all" = "Not at all in past week",
"One or more days" = "1 or more days in past week")
gtpShop <- gt(tibshop)
tibshop1 <- gtpShop$'_data'
listshop <- list(datashop)
tabshop <- rbindlist(listshop, use.names = FALSE)
tabshop1 <- cbind(tabshop, tibshop1)
gttab2 <- gt(tabshop1) %>%
tab_spanner(
label = "Shopping for items other than groceries/pharmacy",
columns = c(2:3)
) %>%
cols_label(
"1 or more days in past week" = "One or more days in past week n=4316"
) %>%
cols_label(
"Not at all in past week" = "Not at all in past week n=1833"
) %>%
cols_move(
columns = "1 or more days in past week",
after = "Not at all in past week"
) %>%
gt_merge_stack(col1 = "Not at all in past week",
col2 = "Not at all"
) %>%
gt_merge_stack(col1 = "1 or more days in past week",
col2 = "One or more days")
#Meetup
tibmeet <- rbind(pMeet)
tibmeet <- as_tibble(tibmeet)
tibmeet <- tibmeet %>%
rename("Not at all" = "One or more times in past week",
"One or more days" = "Not at all in past week")
gtpMeet <- gt(tibmeet)
tibmeet1 <- gtpMeet$'_data'
listmeetup <- list(datameetup)
tabmeetup <- rbindlist(listmeetup, use.names = FALSE)
tabmeetup1 <- cbind(tabmeetup, tibmeet1)
gttab3 <- gt(tabmeetup1) %>%
tab_spanner(
label = "Meeting up with friends of family",
columns = c(2:3)
) %>%
cols_label(
"Not at all in past week" = "One or more days in the last week n=878"
) %>%
cols_label(
"One or more times in past week" = "Not at all in last week n=5271"
) %>%
gt_merge_stack(col1 = "One or more times in past week",
col2 = "Not at all"
) %>%
gt_merge_stack(col1 = "Not at all in past week",
col2 = "One or more days")
#Symptoms
tibsymp <- rbind(pSymp)
tibsymp <- as_tibble(tibsymp)
tibsymp <- tibsymp %>%
rename("Did not identify" = "Did not correctly identify symptoms",
"Correctly identified" = "Correctly identified symptoms")
gtpSymp <- gt(tibsymp)
tibsymp1 <- gtpSymp$'_data'
listsymptoms <- list(datasymptoms)
tabsymptoms <- rbindlist(listsymptoms, use.names = FALSE)
tabsymptoms1 <- cbind(tabsymptoms, tibsymp1)
gttab4 <- gt(tabsymptoms1) %>%
tab_spanner(
label = "Correct identification of cough and fever",
columns = c(2:3)
) %>%
cols_label(
"Did not correctly identify symptoms" = "Did not correctly identify common symptoms n=2390"
) %>%
cols_label(
"Correctly identified symptoms" = "Correctly identified common symptoms n=3632"
) %>%
gt_merge_stack(col1 = "Did not correctly identify symptoms",
col2 = "Did not identify"
) %>%
gt_merge_stack(col1 = "Correctly identified symptoms",
col2 = "Correctly identified")
# Figure 4
### Renaming data
data4 <- data %>%
rename(Gender = gender,
Age = age_categories,
Has_child = Has_child,
Employment_status = Working,
Key_worker = Key_worker,
Education = degree,
Region = region,
Total_outings = Going_out_total,
groceries = Adhere_shop_groceries,
shop_other = Adhere_shop_other,
meetup = Adhere_meet_friends,
symptoms = Sx_covid_nomissing,
think_covid = Ever_covid) %>%
mutate(think_covid = case_when(think_covid == 0 ~ "No",
think_covid == 1 ~ "Yes")) %>%
mutate(groceries = case_when(groceries == 0 ~ "On one or fewer days in the last week n = 2389",
groceries == 1 ~ "On two or more days in the last week n = 3760")) %>%
mutate(shop_other = case_when(shop_other == 0 ~ "Not at all in the last week n = 1833",
shop_other == 1 ~ "On one or more days in the last week n = 4316")) %>%
mutate(meetup = case_when(meetup == 0 ~ "Not at all in the last week n = 5271",
meetup == 1 ~ "On one or more days in the last week n = 878")) %>%
mutate(symptoms = case_when(symptoms == 0 ~ "Did not correctly identify common symptoms n = 2390",
symptoms == 1 ~ "Correctly identified common symptoms n = 3632")) %>%
select(think_covid, groceries, shop_other, meetup, symptoms)
### creating data frames
#data groceries
datagroceries <- data4 %>%
select(groceries,think_covid) %>%
group_by(think_covid) %>%
arrange(factor(groceries, levels = c("On one or fewer days in the last week n = 2389", "On two or more days in the last week n = 3760")))
tgroceries <- datagroceries %>%
tabyl(groceries, think_covid)
gtgroceries <- gt(tgroceries)
datagroceries <- gtgroceries$"_data"
#data shop_other
datashop <- data4 %>%
select(think_covid, shop_other) %>%
arrange(factor(shop_other, levels = c("Not at all in the last week n = 1833", "On one or more days in the last week n = 4316")))
tshop <- datashop %>%
tabyl(shop_other, think_covid)
gtshop <- gt(tshop)
datashop <- gtshop$"_data"
#data meetup
datameetup <- data4 %>%
select(think_covid, meetup) %>%
arrange(factor(meetup, levels = c("Not at all in the last week n = 5271", "On one or more days in the last week n = 878")))
tmeetup <- datameetup %>%
tabyl(meetup, think_covid)
gtmeetup <- gt(tmeetup)
datameetup <- gtmeetup$"_data"
#data symptoms
datasymptoms <- data4 %>%
select(think_covid, symptoms) %>%
arrange(factor(symptoms, levels = c("Did not correctly identify common symptoms n = 2390", "Correctly identified common symptoms n = 3632")))
tsymptoms <- datasymptoms %>%
tabyl(symptoms, think_covid)
gtsymptoms <- gt(tsymptoms)
datasymptoms <- gtsymptoms$"_data"
### percentages
perGroc <- with(data4, table(think_covid,groceries))
pGroc <- prop.table(perGroc, 1)*100
perShop <- with(data4, table(think_covid, shop_other))
pShop <- prop.table(perShop, 1)*100
perMeet <- with(data4, table(think_covid, meetup))
pMeet <- prop.table(perMeet, 1)*100
perSymp <- with(data4, table(think_covid,symptoms))
pSymp <- prop.table(perSymp, 1)*100
#Creating one list
listfull3 <- list(datagroceries,
datashop,
datameetup,
datasymptoms)
listfull3 <- rbindlist(listfull3, use.name=FALSE)
listfull3 <- as_tibble(listfull3)
listfull3 <- listfull3
ptibble4 <- rbind(pGroc, pShop, pMeet, pSymp)
ptibble4 <- as_tibble(ptibble4)
ptibble4 <- data.frame(lapply(ptibble4, function(x) if(is.numeric(x)) round(x,1) else x))
#Combining percentages and numbers
tibble4 <- cbind(listfull3, ptibble4)
tibble4$nocovid <- paste0(tibble4$No, " (", tibble4$On.one.or.fewer.days.in.the.last.week.n...2389, ")")
tibble4$yescovid <- paste0(tibble4$Yes, " (", tibble4$On.two.or.more.days.in.the.last.week.n...3760, ")")
tibble4 <- subset(tibble4, select = c(groceries, nocovid, yescovid)) %>%
rename("Self reported behaviour" = groceries)
gtfull4 <- gt(tibble4) %>%
tab_spanner(
label = "Think COVID-19",
columns = c(2:3)
) %>%
cols_label(
"nocovid" = "Think have not had COVID-19"
) %>%
cols_label(
"yescovid" = "Think have had COVID-19"
) %>%
tab_row_group(
label = "Shopping for groceries/pharmacy",
rows = 1:2
) %>%
tab_row_group(
label = "Shopping for items other than groceries/pharmacy",
rows = 3:4
) %>%
tab_row_group(
label = "Meeting up with friends or family",
rows = 5:6
) %>%
tab_row_group(
label = "Correct identification of cough and fever",
rows = 7:8
) %>%
row_group_order(groups = c("Shopping for groceries/pharmacy",
"Shopping for items other than groceries/pharmacy",
"Meeting up with friends or family",
"Correct identification of cough and fever"
)) %>%
tab_style(cell_text(weight = "bold"),
locations = cells_column_labels(columns = everything())) %>%
tab_style(cell_text(weight = "bold"),
locations = cells_column_spanners()) %>%
tab_style(
style = list(
cell_text(weight = "bold"),
cell_fill()),
locations = cells_row_groups())