Skip to main content

r-collapse

Use when code loads or uses collapse (library(collapse), collapse::), performing fast grouped or weighted statistics in R, or seeking faster alternatives to dplyr aggregation

설치로 이동

소스 정보

저장소
arthurgailes/r-package-skills
최근 소스 활동
2026년 4월 29일 12:34
감지된 SKILL.md 언어
영어
스타
21
포크
1

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
8 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
r-collapse
description
Use when code loads or uses collapse (library(collapse), collapse::), performing fast grouped or weighted statistics in R, or seeking faster alternatives to dplyr aggregation
# collapse: Fast Data Transformation ## Overview **collapse provides C/C++-based high-performance grouped and weighted statistics.** 50-100x faster than dplyr for grouped operations, matches data.table speed while working with any data frame type (tibbles, data.tables, xts). **Core principle:** Fast aggregation, transformation, and panel data operations through vectorized C code. ## References Read `references/API.md` before writing code. - `references/API.md` - Complete function reference - `references/collapse-for-tidyverse-users.md` - Migration guide and patterns - `references/collapse-documentation.md` - Core concepts and usage - `references/collapse-and-sf.md` - Working with spatial data - `references/collapse-object-handling.md` - Data structure handling ## When to Use **Use collapse when:** - Dataset >100k rows - Weighted statistics required - Panel data (between/within transformations) - Time series lags/diffs/growth rates - Performance bottleneck in dplyr pipeline **Don't use:** - Small datasets (<10k rows) - dplyr is clearer - Need arbitrary grouped functions (use dplyr) - Working with sf (use sf and dplyr) - Need reference semantics/in-place modification (use data.table) - Complex joins (data.table's keyed/rolling/non-equi joins better) **vs Alternatives:** | Scenario | Use This | | ------------------------- | ---------- | | Large grouped stats | collapse | | Weighted computations | collapse | | sf manipulation | dplyr | | Reference semantics | data.table | | Complex joins | data.table | | Arbitrary group functions | dplyr | ## Quick Reference | Task | Function/Example | | ----------------- | ----------------------------------------- | | **Grouped stats** | `fmean()`, `fsum()`, `fsd()`, `fmedian()` | | **Aggregation** | `collap(df, ~ by, list(fmean, fsd))` | | **Transform** | `ftransform()`, `fmutate()` | | **Selection** | `fselect()`, `fsubset()` (~100x faster) | | **Time series** | `flag()`, `fdiff()`, `fgrowth()` | | **Panel data** | `fwithin()`, `fbetween()`, `qsu()` | | **Grouping** | `fgroup_by()`, `GRP()` | ## Core Pattern ```r library(collapse) # Basic: grouped mean (50-100x faster than dplyr) data |> fgroup_by(category) |> fmean() # Weighted aggregation data |> fgroup_by(region) |> fmean(w = weight_col) # Multiple stats at once collap(data, ~ category, list(fmean, fsd, fmedian)) # TRA transformations (key differentiator - single C pass) data |> fgroup_by(id) |> fmean(TRA = "-") # Demean: subtract group mean data |> fgroup_by(id) |> fsd(TRA = "/") # Scale: divide by group SD data |> fgroup_by(id) |> fmean(TRA = "fill") # Fill: replace NA with group mean # See references/API.md for full TRA options ("-", "/", "fill", "-+", "replace") ``` ## Common Mistakes | Mistake | Fix | | ------------------------------------------ | -------------------------------------------------------- | | Using `group_by()` with collapse functions | Use `fgroup_by()` or pass `g = GRP(groupvar)` | | `collap()` applies to ALL numeric columns | Explicitly select columns before calling | | Expecting `na.rm = FALSE` default | collapse defaults to `na.rm = TRUE` | | `fwithin()`/`fbetween()` collapse rows | They return same # rows (centered/group means) | | Global options affect behavior | Set arguments explicitly in package code | | Ignoring `sort = FALSE` speedup | Add `sort = FALSE` when order doesn't matter (3x faster) | ## Advanced See `references/` for API reference, vignette content (tidyverse comparison, sf integration, object handling, development guidelines), and panel data patterns. **Validator:** `lib/r-validators/numerical-validator.R` **Resources:** [Docs](https://sebkrantz.github.io/collapse/)
GitHub에서 보기