Skip to content

Instantly share code, notes, and snippets.

View ClaytonJY's full-sized avatar
🏂

Clayton Yochum ClaytonJY

🏂
View GitHub Profile
@ClaytonJY
ClaytonJY / two-in-a-row-example.R
Created April 3, 2017 18:06
Two-in-a-row below a threshold
# x is assumed to be a numeric vector
# output will be TRUE if both that value and the previous value are strictly below the threshold, FALSE otherwise
f <- function(x, threshold) {
less_than <- (x < threshold)
less_than & c(FALSE, !diff(less_than))
}
#### usage ####
@ClaytonJY
ClaytonJY / keybase.md
Created May 24, 2017 20:05
Keybase Proof

Keybase proof

I hereby claim:

  • I am claytonjy on github.
  • I am claytonjy (https://keybase.io/claytonjy) on keybase.
  • I have a public key ASAaodN6sNLW7mO0wHrRnhOVEUExdgEY99aJVvwWrZCiWAo

To claim this, I am signing this object:

@ClaytonJY
ClaytonJY / rlang-purrr-dplyr-issue.md
Last active August 2, 2017 20:03
tidyeval not behaving when used inside purrr and dplyr
library(rlang)
library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
@ClaytonJY
ClaytonJY / tryCatch-example.R
Created September 6, 2017 16:11
tryCatch in R
# test function
f <- function(x) {
if (missing(x)) {
stop("error, Will Robinson")
} else {
x
}
}
f(1) # 1
@ClaytonJY
ClaytonJY / group-level-vfolding.R
Last active October 5, 2017 19:47
"grouped" vfolding in rsample
library(dplyr)
library(purrr)
library(rsample)
# suppose we want to keep cylinder-groups together
# we'll vfold those instead of the whole thing
initial_fold <- mtcars %>%
distinct(cyl) %>%
vfold_cv(v = 3)
@ClaytonJY
ClaytonJY / weird-diag-example.md
Last active January 3, 2018 20:22
R's diag function does weird things
diag(1.1)          
#>      [,1]
#> [1,]    1
diag(0.9)          
#> <0 x 0 matrix>
diag(0.9, nrow = 1)
#>      [,1]
#> [1,]  0.9
diag(-1) 
@ClaytonJY
ClaytonJY / interval-checking.R
Created February 5, 2018 18:18
Checking interval membership in a tidy-ish way
library(dplyr)
library(purrr)
#### setup ####
tbl <- tibble(
id = 1:25
)
@ClaytonJY
ClaytonJY / tidy-parallel-timing.R
Last active May 23, 2023 15:41
Different ways to parallelize a grouped dplyr operation
library(dplyr)
library(purrr)
# helper to make examples
new_tbl <- function(n_groups, row_range = 5:10) {
1:n_groups %>%
map_df(~tibble(
group_id = .x,
value = rnorm(sample.int(row_range, 1L))
@ClaytonJY
ClaytonJY / where-is-imap_at.R
Last active July 3, 2018 19:27
Replacing different values with missing in a subset of columns
library(tidyverse)
mt_tbl <- as_tibble(mtcars)
# types need to match those in mtcars (all doubles)
# careful; `na_if` doesn't work with multiple values
missing_codes <- list(
cyl = 6.0,
disp = 160.0,
carb = 1.0
@ClaytonJY
ClaytonJY / quo-missing-null.R
Created November 9, 2018 15:46
default args for bare col names: missing or NULL?
library(ggplot2)
library(rlang)
f <- function(df, x, y, facet) {
x <- enquo(x)
y <- enquo(y)
facet = enquo(facet)
g <- ggplot(df, aes(x = !!x, y = !!y)) +