coding-r について
coding-r は、R によるデータ処理を行う AI エージェント向けスキルです。データ変換、統計分析、可視化から、レポート、Shiny アプリ、パッケージ開発まで扱います。
主な機能
- 01tidyverse によるデータフレーム変換
- 02ggplot2 による可視化
- 03統計モデルの適合
- 04RMarkdown レポートの生成
- 05Shiny アプリと R パッケージの開発
活用シーン
- 01表形式データセットの整形
- 02分布や変数間の関係の描画
- 03回帰分析の実行
- 04対話型ダッシュボードや再現可能なレポートの作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill coding-rインストール後、Claude Code で/coding-rを入力して読み込まれたか確認します。
詳細
目的
このスキルを使うと、tidyverse や ggplot2 などのパッケージを使用して、データ操作、可視化、分析に関する R プログラミングタスクを実行できます。データフレーム、統計モデリング、RMarkdown レポート、Shiny アプリ、パッケージ開発に重点を置いています。
使用する場面
- データセットのクリーニングや変換など、データフレームを使って表形式のデータを扱う場合。
- 散布図やヒストグラムなど、ggplot2 で可視化を作成する場合。
- データセットで線形回帰を行うなど、統計モデリングを実施する場合。
- Shiny でインタラクティブなアプリを構築したり、RMarkdown でレポートを生成したりする場合。
- カスタムのデータサイエンスワークフロー向けに R パッケージを開発または拡張する場合。
主な機能
- tidyverse の関数(例:フィルタリングや変数の変更に使う dplyr)を使ってデータフレームを操作します。
- レイヤー、テーマ、ファセットを含む ggplot2 のプロットを生成します。
- base R や、回帰分析に使う lm() などのパッケージで統計モデリングを行います。
- コードチャンクや出力を含む、再現可能なレポート用の RMarkdown ドキュメントを作成します。
- インタラクティブなダッシュボード向けの Shiny アプリを開発し、devtools を使ってパッケージを開発します。
- CSV の読み込みやデータベースへの接続など、データサイエンスのパイプラインと連携します。
使用パターン
エージェントのコマンドでは、R コードの前に必ずスキル ID「coding-r」を付けます。例:「coding-r を使ってデータを読み込み、プロットしてください」。応答ではコードブロックを使って呼び出し、スクリプトが単独で実行できるようにします。複数ステップのタスクは関数に分割します。まずライブラリを読み込み、次にデータを処理し、最後に結果を出力します。複雑なワークフローには R スクリプト(.R ファイル)を使い、source("script.R") で呼び出します。パッケージの API キーなど、環境変数が必要な場合は、コードを実行する前に Sys.setenv(API_KEY = "$MY_API_KEY") のように設定します。
主なコマンド/API
- tidyverse の読み込み:
library(tidyverse)に続けて、df <- read_csv("data.csv") %>% filter(column > 10)を実行します。 - ggplot の作成:
library(ggplot2); ggplot(df, aes(x=var1, y=var2)) + geom_point() + theme_minimal()。 - 統計モデリング:
model <- lm(y ~ x, data=df); summary(model)。 - RMarkdown の基本:.Rmd ファイルの先頭に
--- title: "Report" output: html_document ---を記述し、続けて{r} print(summary(df))のようなコードチャンクを追加します。 - Shiny アプリのひな形:
library(shiny); ui <- fluidPage(); server <- function(input, output) {}; shinyApp(ui, server)。 - パッケージ開発:
devtools::create("mypackage")で初期化し、続けて R/ フォルダーに関数を追加します。
統合に関する注意
rpy2 で Python に埋め込む(例:import rpy2.robjects as robjects; robjects.r('library(tidyverse)'))、または reticulate で Python と R を連携させることで、R コードをより大きなワークフローに統合できます。ウェブサービスでは、Shiny アプリを Shiny Server または shinyapps.io にデプロイし、認証用の $SHINY_API_KEY などの環境変数を設定します。パラメーターには設定ファイル(例:YAML)を使用します。config.yml を作成して api_key: $MY_API_KEY を記述し、R で yaml::yaml.load_file("config.yml") を使って読み込みます。R のバージョン互換性(例:>=4.0)を確認し、実行前に install.packages(c("tidyverse", "ggplot2")) で依存関係をインストールします。
エラー処理
堅牢なコードには tryCatch() を使います。例:tryCatch({ result <- lm(y ~ x, data=df) }, error = function(e) print(paste("Error:", e)))。if (!require(tidyverse)) install.packages("tidyverse") で、必要なパッケージが不足していないか確認します。NA 値などのデータの問題は、処理の前に df <- df %>% drop_na() のように対処します。Shiny では shiny::runApp(launch.browser=TRUE) でデバッグし、options(shiny.error = recover) でエラーをログに記録します。入力は必ず検証します。例:if (is.null(df)) stop("Data frame is missing")。API 呼び出し(例:httr パッケージ)が失敗した場合は、httr::RETRY("GET", url, times=3) で再試行します。
具体的な使用例
-
データ分析とプロット:CSV ファイルを分析して散布図を作成するには、次を使用します:
library(tidyverse); library(ggplot2); df <- read_csv("data.csv"); ggplot(df, aes(x=age, y=income)) + geom_point() + labs(title="Age vs Income")。データを読み込み、必要に応じてフィルタリングし、プロットを出力します。 -
RMarkdown での統計モデリング:回帰レポートを作成するには、RMarkdown ファイルを作成します:
--- output: html_document --- # Analysis ````{r} library(tidyverse); model <- lm(sales ~ advertising, data=df); summary(model) `````。rmarkdown::render("report.Rmd")` でレンダリングすると、結果を含む HTML 出力が生成されます。
グラフの関連性
- 関連:ID: coding-python(統合ワークフロー向けのデータサイエンスクラスターを共有)
- 関連:ID: coding-julia(統計モデリングとデータ分析で重複)
- タグ経由で接続:「statistics」は data-analysis などの他のスキルと、「coding」クラスターは一般的なプログラミングツールと接続