Nothing
## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ----setup--------------------------------------------------------------------
library(phsmethods)
## -----------------------------------------------------------------------------
(p <- as_percent(0.055))
## -----------------------------------------------------------------------------
unclass(p)
## -----------------------------------------------------------------------------
print(p)
as.character(p)
format(p)
## -----------------------------------------------------------------------------
p2 <- as_percent(p, digits = 0)
# Prints and formats to 0 decimal places
print(p2)
as.character(p2)
# Underlying data has not been rounded!
unclass(p2)
## -----------------------------------------------------------------------------
p3 <- round(p, digits = 0)
p3
# Underlying data has been rounded
unclass(p3)
## -----------------------------------------------------------------------------
# Helper to create literal percentages
percent <- function(x) {
as_percent(x / 100)
}
## -----------------------------------------------------------------------------
percent(50) + percent(25) # = 50% + 25% = 75%
percent(50) - percent(25) # = 50% - 25% = 25%
percent(50) * percent(25) # = 50% * (1/4) = 12.5%
percent(50) / percent(25) # = 50% / (1/4) = 200%
## -----------------------------------------------------------------------------
percentages <- percent(seq(-0.1, 0.1, by = 0.05))
floor(percentages)
ceiling(percentages)
trunc(percentages)
round(percentages)
round(percentages, 1)
round(percentages, 2)
## -----------------------------------------------------------------------------
library(dplyr)
species <- starwars |>
count(species, sort = TRUE) |>
mutate(perc = as_percent(n / sum(n), digits = 1))
# Prints nicely
species |>
slice_head(n = 5)
## -----------------------------------------------------------------------------
perc_summary <- species |>
summarise(
min = min(perc),
max = max(perc),
median = median(perc),
avg = mean(perc),
sum = sum(perc)
)
perc_summary
## -----------------------------------------------------------------------------
library(knitr)
kable(perc_summary)
## -----------------------------------------------------------------------------
library(flextable)
qflextable(perc_summary)
## -----------------------------------------------------------------------------
library(ggplot2)
gg_data <- iris |>
as_tibble() |>
count(Species) |>
mutate(
prop = n / sum(n),
perc = as_percent(
prop,
digits = 1 # To control formatting in ggplot + elsewhere
)
)
gg_data
species_gg <- gg_data |>
ggplot(aes(Species)) +
geom_col(aes(y = prop, fill = Species), width = 0.25)
## ----fig.width = 7, fig.height = 6--------------------------------------------
species_gg +
scale_y_continuous(name = "Percentage", labels = as_percent)
## ----fig.width = 7, fig.height = 6--------------------------------------------
gg_data |>
ggplot(aes(x = "", y = perc, fill = Species)) +
geom_bar(stat = "identity", width = 1, color = "white") +
coord_polar("y", start = 0) +
theme_void() +
geom_text(aes(label = perc), position = position_stack(vjust = 0.5)) +
scale_fill_brewer(palette = "Set1")
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.