Nothing
## ---- echo = FALSE------------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "README-"
)
options(tibble.print_min = 3, tibble.print_max = 3)
## ----setup, include = FALSE---------------------------------------------------
library(dplyr, quietly = TRUE, warn.conflicts = FALSE)
library(keyholder, quietly = TRUE, warn.conflicts = FALSE)
## ----Create basic example tibble----------------------------------------------
mtcars_tbl <- mtcars %>% as_tibble()
## ----set keys by assigning----------------------------------------------------
mtcars_tbl_keyed <- mtcars_tbl
keys(mtcars_tbl_keyed) <- tibble(id = 1:nrow(mtcars_tbl_keyed))
mtcars_tbl %>% assign_keys(tibble(id = 1:nrow(.)))
## ----set keys by key_by-------------------------------------------------------
mtcars_tbl %>% key_by(vs, am)
mtcars_tbl %>% key_by(starts_with("c"))
mtcars_tbl %>% key_by(starts_with("c"), .exclude = TRUE)
# Scoped variants
mtcars_tbl %>% key_by_all()
# One can also rename variables before keying by supplying .funs
mtcars_tbl %>% key_by_if(rlang::is_integerish, .funs = toupper)
mtcars_tbl %>% key_by_at(c("vs", "am"))
## ----unkey--------------------------------------------------------------------
mtcars_tbl_keyed <- mtcars_tbl %>% key_by(vs, am)
# Good
mtcars_tbl_keyed %>% unkey()
# Bad
attr(mtcars_tbl_keyed, "keys") <- NULL
mtcars_tbl_keyed
## ----get keys with keys-------------------------------------------------------
mtcars_tbl %>% keys()
mtcars_tbl %>% key_by(vs, am) %>% keys()
## ----get keys with raw_keys---------------------------------------------------
mtcars_tbl %>% raw_keys()
mtcars_tbl %>% key_by(vs, am) %>% raw_keys()
## ----get keys with pull_key---------------------------------------------------
mtcars_tbl %>% key_by(vs, am) %>% pull_key(vs)
## ----remove keys--------------------------------------------------------------
mtcars_tbl %>% key_by(vs, mpg) %>% remove_keys(vs)
mtcars_tbl %>% key_by(vs, mpg) %>% remove_keys(everything(), .unkey = TRUE)
# Scoped variants
# Identical to previous one
mtcars_tbl %>% key_by(vs, mpg) %>% remove_keys_all(.unkey = TRUE)
mtcars_tbl %>% key_by(vs, mpg) %>% remove_keys_if(rlang::is_integerish)
## ----restore keys-------------------------------------------------------------
mtcars_tbl_keyed <- mtcars_tbl %>%
key_by(vs, mpg) %>%
mutate(vs = 1, mpg = 0)
mtcars_tbl_keyed
mtcars_tbl_keyed %>% restore_keys(vs)
mtcars_tbl_keyed %>% restore_keys(vs, .remove = TRUE)
mtcars_tbl_keyed %>% restore_keys(vs, mpg, .unkey = TRUE)
mtcars_tbl_keyed %>% restore_keys(vs, mpg, .remove = TRUE, .unkey = TRUE)
# Scoped variants
mtcars_tbl_keyed %>% restore_keys_all()
mtcars_tbl_keyed %>% restore_keys_if(rlang::is_integerish, .remove = TRUE)
## ----restore keys grouping----------------------------------------------------
mtcars_tbl_keyed %>% group_by(vs, mpg)
mtcars_tbl_keyed %>% group_by(vs, mpg) %>% restore_keys(vs, mpg)
## ----rename keys--------------------------------------------------------------
mtcars_tbl %>% key_by(vs, am) %>% rename_keys(Vs = vs)
# Scoped variants
mtcars_tbl %>% key_by(vs, am) %>% rename_keys_all(.funs = toupper)
## ----reaction to subset-------------------------------------------------------
mtcars_tbl_subset <- mtcars_tbl %>% key_by(vs, am) %>%
`[`(c(3, 18, 19), c(2, 8, 9))
mtcars_tbl_subset
keys(mtcars_tbl_subset)
## ----dplyr verbs--------------------------------------------------------------
mtcars_tbl_keyed <- mtcars_tbl %>% key_by(vs, am)
mtcars_tbl_keyed %>% select(gear, mpg)
mtcars_tbl_keyed %>% summarise(meanMPG = mean(mpg))
mtcars_tbl_keyed %>% filter(vs == 1) %>% keys()
mtcars_tbl_keyed %>% arrange_at("mpg") %>% keys()
band_members %>% key_by(name) %>%
semi_join(band_instruments, by = "name") %>%
keys()
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.