rlang-patterns

Write dynamic data-masked R code using tidy evaluation techniques.

1|Updated Mar 9, 2026
One-click install
npx skills add https://github.com/gnoblet/ANA_app_svelte --skill rlang-patterns-gnoblet
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: rlang-patterns
Source: https://github.com/gnoblet/ANA_app_svelte/tree/main/.claude/.claude/skills/rlang-patterns
Command: npx skills add https://github.com/gnoblet/ANA_app_svelte --skill rlang-patterns-gnoblet

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Solve the challenge of writing dynamic, data-masked R code using tidy evaluation.

Core Features & Use Cases

  • Data-masking with {{ }} for forwarding function arguments.
  • Injection operators !! and !!! to build expressive metaprogramming patterns.
  • Dynamic dots, .data/.env pronouns, and bridge patterns for tidy workflows.

Quick Start

Create a simple function that uses {{ var }} to summarize a column in a data frame.

Frequently Asked Questions about rlang-patterns

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I use tidy evaluation to forward function arguments in R?

Tidy evaluation uses the data-masking pattern with {{ }} to forward function arguments. This allows you to dynamically reference data frame columns inside your own functions without hardcoding variable names.

What is the difference between the !! and !!! injection operators in rlang?

The !! operator injects a single object into an expression, while !!! splices a list of objects into an expression. Both are used in rlang metaprogramming to build dynamic code patterns for data analysis.

Can I use dynamic dots to build flexible data-processing utilities in R?

Dynamic dots allow you to collect multiple arguments in R functions and manipulate them before evaluation. This rlang feature is essential for building flexible data-processing utilities that forward expressions or splice arguments.

When do I need data-masking for package development with tidy evaluation?

Data-masking is needed when developing R packages that evaluate expressions in the context of a data frame. It allows users to refer to columns directly by name, requiring metaprogramming patterns to handle safely.

How do .data and .env pronouns work in tidy evaluation?

The .data and .env pronouns explicitly disambiguate between columns in a data frame and variables in the environment. Using these pronouns ensures safe data-masking and prevents scope collisions during code evaluation.