## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(collapse = TRUE,
                      comment = "#>")
options(repos = c(CRAN = "[https://cloud.r-project.org](https://cloud.r-project.org)"))

## ----echo=FALSE,results='hide',message=FALSE,include=FALSE, eval=TRUE---------
if (!require(knitr))
  install.packages("knitr")
if (!require(devtools))
  install.packages("devtools")
if (!require(dplyr))
  install.packages("dplyr")
if (!require(magrittr))
  install.packages("magrittr")
if (!require(ggplot2))
  install.packages("ggplot2")
if (!require(countrycode))
  install.packages("countrycode")
if (!require(xtable))
  install.packages("xtable")

## ----eval=FALSE---------------------------------------------------------------
# install.packages("overviewR", force = TRUE)

## ----message=FALSE, warning=FALSE, results = "hide", eval=FALSE---------------
# library(devtools)
# devtools::install_github("cosimameyer/overviewR")

## ----include = FALSE, eval = FALSE--------------------------------------------
# install.packages("overviewR")

## ----message=FALSE, warning=FALSE---------------------------------------------
library(overviewR)

## -----------------------------------------------------------------------------
data(toydata)
head(toydata)

## ----message=FALSE, warning=FALSE, eval=FALSE---------------------------------
# output_table <- overview_tab(dat = toydata, id = ccode, time = year)

## ----message=FALSE, eval=FALSE------------------------------------------------
# output_table

## ----message=FALSE, eval=FALSE------------------------------------------------
# output_table_complex <- overview_tab(dat = toydata, id = ccode,
#                                      time = list(year = toydata$year,
#                                                  month = toydata$month,
#                                                  day = toydata$day),
#                                      complex_date = TRUE)

## ----message=FALSE, eval=FALSE------------------------------------------------
# output_table_complex

## ----message=FALSE, warning=FALSE, eval=FALSE---------------------------------
# output_crosstab <- overview_crosstab(
#   dat = toydata,
#   cond1 = gdp,
#   cond2 = population,
#   threshold1 = 25000,
#   threshold2 = 27000,
#   id = ccode,
#   time = year
# )

## ----message=FALSE, echo=FALSE, eval=FALSE------------------------------------
# output_crosstab

## ----eval=FALSE---------------------------------------------------------------
# overview_latex(obj = output_table)

## ----eval=FALSE, include=FALSE------------------------------------------------
# overview_latex(obj = output_table)

## ----eval = FALSE, eval=FALSE-------------------------------------------------
# overview_latex(
#   obj = output_table,
#   id = "Countries",
#   time = "Years",
#   title = "Cool new title for our awesome table"
# )

## ----eval=FALSE, include=FALSE------------------------------------------------
# overview_latex(
#   obj = output_table,
#   id = "Countries",
#   time = "Years",
#   title = "Cool new title for our awesome table"
# )

## ----eval = FALSE-------------------------------------------------------------
# overview_latex(
#   obj = output_crosstab,
#   title = "Cross table of the sample",
#   crosstab = TRUE,
#   cond1 = "GDP",
#   cond2 = "Population"
# )

## ----eval=FALSE, include=FALSE------------------------------------------------
# overview_latex(
#   obj = output_crosstab,
#   title = "Cross table of the sample",
#   crosstab = TRUE,
#   cond1 = "GDP",
#   cond2 = "Population"
# )

## ----eval = FALSE-------------------------------------------------------------
# overview_latex(obj = output_table,
#                fontsize = "scriptsize",
#                label = "tab:overview")

## ----eval = FALSE-------------------------------------------------------------
# overview_latex(
#   obj = output_table,
#   save_out = TRUE,
#   file_path = "SET-YOUR-PATH/output.tex"
# )

## ----eval=FALSE---------------------------------------------------------------
# overview_markdown(obj = output_table)

## ----eval=FALSE---------------------------------------------------------------
# overview_markdown(
#   obj = output_table,
#   id = "Countries",
#   time = "Years",
#   title = "My custom title"
# )

## ----eval=FALSE---------------------------------------------------------------
# overview_markdown(
#   obj = output_crosstab,
#   crosstab = TRUE,
#   cond1 = "GDP",
#   cond2 = "Population"
# )

## ----eval=FALSE---------------------------------------------------------------
# overview_markdown(
#   obj = output_table,
#   save_out = TRUE,
#   file_path = "output/overview.md"
# )

## ----out.width = '50%', fig.align='center'------------------------------------
data(toydata)
overview_plot(dat = toydata, id = ccode, time = year)

## ----out.width = '50%', fig.align='center'------------------------------------
overview_plot(
  dat = toydata,
  id = ccode,
  time = year,
  asc = FALSE
)

## ----out.width = '50%', fig.align='center', include = TRUE, results = TRUE, message = FALSE, warning=FALSE----
library(overviewR) # Easily Extracting Information About Your Data
library(magrittr) # A Forward-Pipe Operator for R

# Code whether a year was before 1995
toydata <- toydata %>%
  dplyr::mutate(before = ifelse(year < 1995, 1, 0))

# Plot using the `color` argument
overview_plot(
  dat = toydata,
  id = ccode,
  time = year,
  color = before
)

## ----out.width = '50%', fig.align='center', include = TRUE, results = TRUE, message = FALSE, warning=FALSE----
library(ggplot2)

# Explicit colors via scale_color_manual
overview_plot(
  dat = toydata,
  id = ccode,
  time = year,
  color = before
) +
  ggplot2::scale_color_manual(values = c("#E84646", "#4E84C4"))

## ----eval = FALSE-------------------------------------------------------------
# # RColorBrewer palette via scale_color_brewer
# overview_plot(
#   dat = toydata,
#   id = ccode,
#   time = year,
#   color = before
# ) +
#   ggplot2::scale_color_brewer(palette = "Set1")

## ----out.width = '50%', fig.align='center', include = TRUE, results = TRUE, message = FALSE, warning=FALSE----
# Plot using the `dot_size` argument
overview_plot(
  dat = toydata,
  id = ccode,
  time = year,
  dot_size = 5
)

## ----out.width = '50%', fig.align='center', include = TRUE, results = TRUE, message = FALSE, warning=FALSE----
overview_crossplot(
  toydata,
  id = ccode,
  time = year,
  cond1 = gdp,
  cond2 = population,
  threshold1 = 25000,
  threshold2 = 27000
)

## ----out.width = '50%', fig.align='center', include = TRUE, results = TRUE, message = FALSE, warning=FALSE----
overview_crossplot(
  toydata,
  id = ccode,
  time = year,
  cond1 = gdp,
  cond2 = population,
  threshold1 = 25000,
  threshold2 = 27000,
  color = TRUE
)

## ----out.width = '50%', fig.align='center', include = TRUE, results = TRUE, message = FALSE, warning=FALSE----
overview_crossplot(
  toydata,
  id = ccode,
  time = year,
  cond1 = gdp,
  cond2 = population,
  threshold1 = 25000,
  threshold2 = 27000,
  label = TRUE
)

## ----out.width = '50%', fig.align='center', include = TRUE, results = TRUE, message = FALSE, warning=FALSE----
overview_crossplot(
  toydata,
  id = ccode,
  time = year,
  cond1 = gdp,
  cond2 = population,
  threshold1 = 25000,
  threshold2 = 27000,
  color = TRUE,
  label = TRUE
)

## ----include = TRUE-----------------------------------------------------------
toydata_red <- toydata[-sample(seq_len(nrow(toydata)), 64), ]

## ----out.width = '50%', fig.align='center'------------------------------------
overview_heat(toydata_red,
              ccode,
              year,
              perc = TRUE,
              exp_total = 12)

## ----include=TRUE-------------------------------------------------------------
toydata_with_na <- toydata %>%
  dplyr::mutate(
    year = ifelse(year < 1992, NA, year),
    month = ifelse(month %in% c("Jan", "Jun", "Aug"), NA, month),
    gdp = ifelse(gdp < 20000, NA, gdp)
  )

## ----out.width = '50%', fig.align='center'------------------------------------
overview_na(toydata_with_na)

## ----out.width = '50%', fig.align='center'------------------------------------
overview_na(toydata_with_na, perc = FALSE)

## ----out.width = '50%', fig.align='center'------------------------------------
overview_na(toydata_with_na, row_wise = TRUE)

## ----out.width = '50%', fig.align='center'------------------------------------
overview_na(toydata_with_na, row_wise = TRUE, perc = FALSE)

## ----eval=FALSE---------------------------------------------------------------
# toydata_extended <- overview_na(toydata_with_na, row_wise = TRUE, add = TRUE)
# head(toydata_extended)

## ----out.width = '50%', fig.align='center', eval = TRUE-----------------------
library(dplyr)

# Subset one data set for comparison
toydata2 <- toydata %>% dplyr::filter(year > 1992)

overview_overlap(
  dat1 = toydata,
  dat2 = toydata2,
  dat1_id = ccode,
  dat2_id = ccode,
  plot_type = "bar" # This is the default
)

## ----out.width = '50%', fig.align='center'------------------------------------
library(ggplot2) # Create Elegant Data Visualisations 
                 # Using the Grammar of Graphics

overview_na(toydata_with_na) +
  ggplot2::theme_minimal()

## ----out.width = '50%', fig.align='center'------------------------------------
library(dplyr) # A Grammar of Data Manipulation # A Grammar of Data Manipulation

toydata_with_na %>%
  dplyr::filter(year > 1993) %>%
  overview_na()

## ----out.width = '50%', fig.align='center'------------------------------------
library(countrycode) # Convert Country Names and Country Codes
library(dplyr) # A Grammar of Data Manipulation # A Grammar of Data Manipulation

toydata %>%
  # Transform the country code (ISO3 character code) into a country name using
  # the `countrycode` package
  dplyr::mutate(country =
                  countrycode::countrycode(ccode, "iso3c", "country.name")) %>%
  overview_plot(id = country, time = year)

## ----eval = FALSE-------------------------------------------------------------
# # Produces a printable LaTeX output
# toydata %>%
#   overview_tab(id = ccode, time = year) %>%
#   overview_latex()

## ----eval=FALSE---------------------------------------------------------------
# library(flextable) # not installed on this machine
# table_output <- qflextable(output_table)
# table_output <-
#   set_header_labels(table_output,
#                     ccode = "Countries",
#                     time_frame = "Time frame")
# set_table_properties(table_output,
#                      width = .4,
#                      layout = "autofit")

## ----echo=FALSE, include=FALSE------------------------------------------------
output_table <-
  data.frame(
    ccode = c("RWA", "AGO", "BEN", "GBR", "FRA"),
    time_frame = c(
      "1990-1995",
      "1990-1992",
      "1995-1999",
      "1991, 1993, 1995, 1997, 1999",
      "1993, 1996, 1999"
    )
  )

## -----------------------------------------------------------------------------
library(knitr) # A General-Purpose Package for Dynamic Report Generation in R
knitr::kable(output_table)

## ----out.width = '50%', fig.align='center'------------------------------------
library(ggplot2) # Create Elegant Data Visualisations Using the
# Grammar of Graphics

overview_na(toydata_with_na) +
  ggplot2::theme_minimal()

## ----eval=TRUE----------------------------------------------------------------
library(overviewR)
library(dplyr)
library(xtable)

# Load data
data(toydata)

# Restrict the data so that we have something to compare :-)
toydata_res <- toydata %>%
  dplyr::filter(year > 1992)

# Generate two overview_tab objects
dat1 <- overview_tab(toydata, id = ccode, time = year)
dat2 <- overview_tab(toydata_res, id = ccode, time = year)

# And now we use full_join to combine both
dat_full <- dat1 %>%
  dplyr::full_join(dat2, by = "ccode") %>%
  dplyr::rename(time_dat1 = time_frame.x,
                time_dat2 = time_frame.y)

## ----eval=FALSE---------------------------------------------------------------
# head(dat_full)

## ----eval=FALSE---------------------------------------------------------------
# print(xtable(dat_full), include.rownames = FALSE)

