UNIX パイプラインに統計学を持ち込む。 Windows (MSVC / MinGW) でも動作します
C++17 ヘッダーオンリー統計ライブラリ statcpp を使ったコマンドライン統計ツール。
awk が文字列処理、jq が JSON 処理を担うように、statcpp が統計処理を担う。
シングルバイナリ・依存ゼロ・高速起動で、データ分析のワークフローに自然に溶け込むツールを目指す。
- 16 カテゴリ・94 コマンド(記述統計から生存分析まで)
- CSV / TSV 自動判定、stdin パイプ対応
- テキスト / JSON / quiet 出力モード
- C++17 シングルバイナリ、起動数 ms
git clone <repository-url>
cd statcppCLI
cmake -B build && cmake --build buildビルド済みバイナリ: build/statcpp
Windows (MSVC):
git clone <repository-url>
cd statcppCLI
cmake -S . -B build
cmake --build build --config Releaseビルド済みバイナリ: build\Release\statcpp.exe
# /usr/local/bin/statcpp にインストール
sudo cmake --install build
# 任意のディレクトリにインストール
cmake --install build --prefix ~/.localWindows:
cmake --install build --config Release --prefix C:\Users\<user>\AppData\Local\statcpp- CMake 3.20+
- C++17 対応コンパイラ (GCC 9+, Clang 10+, Apple Clang 12+, MSVC 2019+)
statcpp, gflags, nlohmann/json は CMake が自動でダウンロードします。
# 基本統計量の一括表示
statcpp desc summary data.csv --col price
# 平均値(パイプ)
cat data.csv | statcpp desc mean --col value
# stdin から直接
printf '1\n2\n3\n4\n5\n' | statcpp desc mean --noheader --col 1
# インラインデータ(スペースまたはカンマ区切り)
echo '1 2 3 4 5' | statcpp desc mean --noheader --col 1 --row
# t 検定(2 群比較)
statcpp test t data.csv --col group1,group2
# 相関分析
statcpp corr pearson data.csv --col x,y
# 回帰分析
statcpp reg simple data.csv --col x,y
# JSON 出力
statcpp desc summary data.csv --col price --json
# 数値のみ(パイプ向け)
statcpp desc mean data.csv --col price --quiet
# 検出力分析(CSV 不要)
statcpp power t-one --effect 0.5 --n 30$ statcpp desc summary data.csv --col value
Count: 5
Mean: 30
Std Dev: 15.8114
Min: 10
Q1: 20
Median: 30
Q3: 40
Max: 50
Skewness: 0
Kurtosis: -1.2
| カテゴリ | 説明 | コマンド数 |
|---|---|---|
desc |
記述統計 | 17 |
test |
統計検定 | 12 |
corr |
相関・共分散 | 5 |
effect |
効果量 | 6 |
ci |
信頼区間 | 5 |
reg |
回帰分析 | 5 |
anova |
分散分析 | 5 |
resample |
リサンプリング | 6 |
ts |
時系列分析 | 8 |
robust |
ロバスト統計 | 7 |
survival |
生存分析 | 3 |
cluster |
クラスタリング | 3 |
multiple |
多重検定補正 | 3 |
power |
検出力分析 | 3 |
glm |
一般化線形モデル | 2 |
model |
モデル選択 | 4 |
ショートカット: mean, median, mode, sd, var, summary, range, iqr, cv, skewness, kurtosis, quartiles, gmean, hmean, ttest, pearson, spearman, kendall
- コマンドリファレンス - 全コマンドのオプションと使い方
- テストリファレンス - 全コマンドの実行例と出力検証
- 設計・開発者ガイド - アーキテクチャと開発情報
- テスト検証結果 - 全コマンドの実行結果
# 単体テスト
cmake -B build -DGTEST=true && cmake --build build && ctest --test-dir build --verbose
# E2E テスト (macOS / Linux のみ)
cd test/e2e && bash run_e2e.sh
# リファレンス全例の検証 (macOS / Linux のみ)
bash docs/run_reference.sh- macOS + Apple Clang 17.0.0
- macOS + GCC 15 (Homebrew)
- Ubuntu 24.04 ARM64 + GCC 13.3.0
- Windows 11 ARM64 + MSVC 2022 (Parallels 経由)
このプロジェクトは MIT ライセンスの下で公開されています。詳細は LICENSE ファイルを参照してください。
| ライブラリ | ライセンス |
|---|---|
| statcpp | MIT License |
| gflags | BSD 3-Clause License |
| nlohmann/json | MIT License |
このプロジェクトの開発には以下のツールと AI を活用しています:
- Claude Code for VS Code Opus 4.6 - ドキュメント類の用語の統一、説明不足の確認、テストコードの作成と結果の確認
- OpenAI ChatGPT 5.2 - ドキュメント類の用語の統一、説明不足の確認
注意: 本ソフトウェアは数値安定性や極端なエッジケースへの対応において、商用の統計ソフトウェアと同等のレベルではありません。研究や本番環境で使用する場合は、結果を他のツールで検証することをお勧めします。