knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
kickme <- function(base_size = 14,
                   base_family = "sans") {
  # colors <- deframe(ggthemes::ggthemes_data[["fivethirtyeight"]])
  (
    ggthemes::theme_foundation(base_size = base_size, base_family = base_family) +
      theme(
        line = element_line(colour = "azure2"),
        rect = element_rect(
          # fill = colors["Light Gray"],
          fill = "transparent",
          color = NA,
          linetype = 0,
          colour = NA
        ),
        # text = element_text(colour = colors["Dark Gray"]),
        # axis.title = element_blank(),
        # axis.text = element_text(),

        axis.text.x = element_text(
          size = 12,
          colour = "Black",
          angle = 0
        ),
        axis.text.y = element_text(
          size = 12,
          colour = "Black",
          angle = 0
        ),
        axis.title.x = element_text(
          size = 18,
          colour = "Black",
          angle = 0
        ),
        axis.title.y = element_text(
          size = 18,
          colour = "Black",
          angle = 90
        ),

        axis.ticks = element_blank(),
        axis.line = element_blank(),
        legend.background = element_rect(),
        legend.position = "bottom",
        legend.direction = "horizontal",
        legend.box = "vertical",
        # panel.grid = element_line(colour = NULL),
        # panel.grid.major = element_line(colour = colors["Medium Gray"]),
        # panel.grid.minor = element_blank(),

        panel.background = element_rect(fill = "transparent", colour = NA),
        plot.background = element_rect(fill = "transparent", colour = NA),

        plot.title = element_text(
          hjust = 0,
          size = rel(1.5),
          face = "bold"
        ),
        plot.margin = unit(c(
          1,
          1, 1, 1
        ), "lines"),
        # strip.background = element_rect()
        strip.background = element_rect(fill = "transparent", colour = NA),

        strip.text.x = element_text(
          size = 18,
          colour = "Black",
          angle = 0
        )
      )
  )
}
library(RCrashCourse)


library(rethinking)

library(tidyverse)
# datasets::InsectSprays
# abd::MoleRats
# abd::Telomeres
# datasets::InsectSprays


write.csv(abd::MoleRats, "MoleRats.csv")

readxl::re

Some vocabulary and metaphors for thinking about how R sees the world

Code that is something: Atomics to data.frames


Code that does something: Functions and looping


Importing data

# CSVs
read.csv("../data/MoleRats.csv")
# Excel files
readxl::read_excel("../data/MoleRats.xlsx")
# R data objects
# load()
# Libraries
M <- abd::MoleRats

Making data (and code) easy to work with and easy to diagnose problems

janitor::clean_names()

styler::style_file()

Inspecting type of Inspecting structure

typeof()

str()

head()

tail()

Selecting parts of that data


Conditionals Filtering Getting rid of some of that data Dropping outliers

Plotting Boxplots and allies


library(tidyverse)
library(abd)
library(kableExtra)

library(cowplot)
library(ggsci)
library(ggExtra)


library(ggthemes) # theme_foundation
library(car)
str(M)
cowplot::plot_grid(plotlist = list(

ggplot(M, aes(x = caste, y = ln.energy))+
  geom_boxplot(aes(group = caste, fill = caste))+
  scale_fill_brewer(palette = "Set1")+
  kickme(),

ggplot(M, aes(x = caste, y = ln.energy, group = caste, fill = caste))+
  geom_violin()+
  scale_fill_brewer(palette = "Set1")+
  kickme(),

ggplot(M, aes(x = caste, y = ln.energy, group = caste, color = caste))+
  geom_jitter(width = 0.1)+
  scale_color_brewer(palette = "Set1")+
  kickme(),

ggplot(M, aes(x = caste, y = ln.energy, group = caste, color = caste))+
  ggbeeswarm::geom_quasirandom()+
  scale_color_brewer(palette = "Set1")+
  kickme()

))
lm(ln.energy ~ caste, M) %>% summary()
cowplot::plot_grid(plotlist = list(

ggplot(M, aes(x = ln.mass, y = ln.energy))+
  geom_point()+
  kickme(),

ggplot(M, aes(x = ln.mass, y = ln.energy))+
  geom_smooth(method = lm, se = F)+
  geom_point()+
  kickme(),


ggplot(M, aes(x = ln.mass, y = ln.energy, group = caste, color = caste))+
  geom_point()+
  scale_color_brewer(palette = "Set1")+
  kickme(),

ggplot(M, aes(x = ln.mass, y = ln.energy, group = caste, color = caste))+
  geom_smooth(method = lm, se = F)+
  geom_point()+
  scale_color_brewer(palette = "Set1")+
  kickme()
))
p <- ggplot(M, aes(x = ln.mass, y = ln.energy, color = caste))+
  geom_smooth(method = lm, se = F)+
  geom_point()+
  scale_fill_brewer(palette = "Set1")+
  scale_color_brewer(palette = "Set1")+
  kickme()

ggMarginal(p, groupColour = T, groupFill = T)
fm <- lm(ln.energy ~ ln.mass + caste, M) 

fm %>% summary()

Anova.table <- lm(ln.mass ~ caste, data = MoleRats) %>% Anova(type = "III")
Anova.table %>% 
  kable() %>%
  kable_styling()

Scatter plots Regressions Correlation heatmaps Modeling a relationship Linear model -> Anova -> post hoc test Correlation Saving outputs Writing plots Writing csvs Good places to look for help



danielkick/RCrashCourse documentation built on June 7, 2019, 12:47 a.m.