116 lines
2.7 KiB
R
116 lines
2.7 KiB
R
|
## ---- include = FALSE---------------------------------------------------------
|
||
|
knitr::opts_chunk$set(
|
||
|
collapse = TRUE,
|
||
|
comment = "#>",
|
||
|
error = (Sys.getenv("IN_PKGDOWN") == "")
|
||
|
)
|
||
|
|
||
|
library(tibble)
|
||
|
library(formattable)
|
||
|
library(dplyr)
|
||
|
library(tidyr)
|
||
|
library(ggplot2)
|
||
|
|
||
|
## ----setup--------------------------------------------------------------------
|
||
|
library(tibble)
|
||
|
|
||
|
## -----------------------------------------------------------------------------
|
||
|
library(formattable)
|
||
|
|
||
|
tbl <- tibble(x = digits(9:11, 3))
|
||
|
tbl
|
||
|
|
||
|
## ----echo = FALSE-------------------------------------------------------------
|
||
|
vec_ptype_abbr.formattable <- function(x, ...) {
|
||
|
"dbl:fmt"
|
||
|
}
|
||
|
|
||
|
pillar_shaft.formattable <- function(x, ...) {
|
||
|
pillar::new_pillar_shaft_simple(format(x), align = "right")
|
||
|
}
|
||
|
|
||
|
## -----------------------------------------------------------------------------
|
||
|
library(dplyr)
|
||
|
tbl2 <-
|
||
|
tbl %>%
|
||
|
mutate(
|
||
|
y = x + 1,
|
||
|
z = x * x,
|
||
|
v = y + z,
|
||
|
lag = lag(x, default = x[[1]]),
|
||
|
sin = sin(x),
|
||
|
mean = mean(v),
|
||
|
var = var(x)
|
||
|
)
|
||
|
|
||
|
tbl2
|
||
|
|
||
|
## -----------------------------------------------------------------------------
|
||
|
tbl2 %>%
|
||
|
group_by(lag) %>%
|
||
|
summarize(z = mean(z)) %>%
|
||
|
ungroup()
|
||
|
|
||
|
## -----------------------------------------------------------------------------
|
||
|
library(tidyr)
|
||
|
|
||
|
stocks <-
|
||
|
expand_grid(id = factor(1:4), year = 2018:2022) %>%
|
||
|
mutate(stock = currency(runif(20) * 10000))
|
||
|
|
||
|
stocks %>%
|
||
|
pivot_wider(id_cols = id, names_from = year, values_from = stock)
|
||
|
|
||
|
## ---- eval = (Sys.getenv("IN_GALLEY") == "")----------------------------------
|
||
|
library(ggplot2)
|
||
|
|
||
|
# Needs https://github.com/tidyverse/ggplot2/pull/4065 or similar
|
||
|
stocks %>%
|
||
|
ggplot(aes(x = year, y = stock, color = id)) +
|
||
|
geom_line()
|
||
|
|
||
|
## ----echo = FALSE, eval = (Sys.getenv("IN_GALLEY") == "")---------------------
|
||
|
text <- paste(
|
||
|
readLines(here::here("vignettes/r4ds.mmd")),
|
||
|
collapse = "\n"
|
||
|
)
|
||
|
DiagrammeR::mermaid(text)
|
||
|
|
||
|
## ----echo = FALSE, eval = (Sys.getenv("IN_GALLEY") == "")---------------------
|
||
|
text <- paste(
|
||
|
readLines(here::here("vignettes/formats.mmd")),
|
||
|
collapse = "\n"
|
||
|
)
|
||
|
DiagrammeR::mermaid(text)
|
||
|
|
||
|
## -----------------------------------------------------------------------------
|
||
|
tbl3 <-
|
||
|
tibble(id = letters[1:3], x = 9:11) %>%
|
||
|
mutate(
|
||
|
y = x + 1,
|
||
|
z = x * x,
|
||
|
v = y + z,
|
||
|
lag = lag(x, default = x[[1]]),
|
||
|
sin = sin(x),
|
||
|
mean = mean(v),
|
||
|
var = var(x)
|
||
|
)
|
||
|
|
||
|
tbl3
|
||
|
|
||
|
tbl3 %>%
|
||
|
mutate(
|
||
|
across(where(is.numeric), ~ digits(.x, 3)),
|
||
|
across(where(~ is.numeric(.x) && mean(.x) > 50), ~ digits(.x, 1))
|
||
|
)
|
||
|
|
||
|
## -----------------------------------------------------------------------------
|
||
|
rules <- quos(
|
||
|
across(where(is.numeric), ~ digits(.x, 3)),
|
||
|
across(where(~ is.numeric(.x) && mean(.x) > 50), ~ digits(.x, 1))
|
||
|
)
|
||
|
|
||
|
tbl3 %>%
|
||
|
mutate(!!!rules)
|
||
|
|