Skip to content

Instantly share code, notes, and snippets.

@jrosell
jrosell / install_and_load.R
Last active June 12, 2025 15:28
This is how I like to check for required installed versions and load packages in my R scripts, including non-CRAN packages. It requires {rlang} and {pak} packages.
if (!requireNamespace('rlang')) stop("Please, run install.packages('rlang')")
rlang::check_required("pak")
pkgs <- rlang::chr(
rlang = "r-lib/[email protected]",
purrr = "purrr",
tidyverse = "tidyverse/tidyverse",
tidymodels = "tidymodels/tidymodels",
jrrosell = "jrosell/jrrosell@main",
)
pak::pak(pkgs)
# Level 2
minimal_character_positions <- \(s) {
max_len <- max(nchar(s))
for (i in seq_len(max_len)) {
for (indices in combn(seq_len(max_len), i, simplify = FALSE)) {
char_vectors <-
purrr::map(s, \(str, idx = indices) {
purrr::map_chr(idx, \(ii) {
if (ii <= nchar(str)) substr(str, ii, ii) else NA
})
library(tidychatmodels)
ollama_llama31 <-
create_chat('ollama') |>
add_model('llama3.1')
chat <-
ollama_llama31 |>
add_message('What is love? IN 10 WORDS.') |>
perform_chat()
# Thanks to @koaning for pointing out this visualization in Stack Overflow https://stackoverflow.com/a/49535509/481463 in this video https://www.youtube.com/watch?v=3M2Gmuh5mtI
library(tidyverse)
library(rayshader)
library(viridis)
df <-
expand_grid(
precision = 1:100 / 100,
recall = 1:100 / 100,
library(magick)
library(purrr)
library(ggplot2)
# Define variables
FRAMES <- 30
MEAN1 <- 0 # Mean of the first group
MEAN2 <- 0.2 # Mean of the second group
FROM <- 2
TO <- 1500
# @jrosell: Calculate shortest distance to fuel station from all interest points (useful for feature engineering!)
# @jrosell: Use setNames to be sure distance works.
# @jrosell: Use rowwise() |> group_split() |> map() |> list_rbind() to be able to get ETA with .progress = TRUE
# Original source by @milos-agathon: https://www.youtube.com/watch?v=jmImC0v6qmU
# ==============================================================================
# Preparations
libs <- c(
"tidyverse", # Data wrangling and visualization
library(testthat)
expected <- c(0L, 8L, 15L, 0L, 5L, 9L, 0L, 2L)
cumsum_cut_base <- function(x, cuts = NULL) {
g <- rep(0, length(x))
if (!is.null(cuts)) g[cuts] <- 1
unlist(unname(lapply(split(x, cumsum(g)), \(.x) head(c(0, cumsum(.x)), -1))))
}
cumsum_cut_rlang <- function(x, cuts) {
library(magick)
library(lofifonts) # remotes::install_github('coolbutuseless/lofifonts')
library(purrr)
bitmap_text_coords("Hello", font = 'unifont') |>
head()
text <- glue::glue("It is a period of civil war.
Rebel spaceships, striking
from a hidden base, have won
# Original code: https://www.andrewheiss.com/blog/2022/09/26/guide-visualizing-types-posteriors/
# Preparations -----------------------------------------------------------------
cat("repos: ", getOption("repos"), "\n")
if (!requireNamespace("rlang", quietly = TRUE)) stop("Please, install.packages('rlang')")
if (!requireNamespace("pak", quietly = TRUE)) stop("Please, install.packages('pak')")
pkgs <- rlang::chr(
"tidyverse", # ggplot, dplyr, purrr and friends
"patchwork", # Combine ggplot plots
# Original code: https://tim-tiefenbach.de/post/2023-dplyr-many-models/
# Loading the packages and getting the data ------------------------------------
if (!rlang::is_installed("pak")) install.packages("pak")
rlang::check_installed(c(
"pak",
"dplyr",
"tidyr",
"broom",