关于 coding-r
coding-r 是供 AI Agent 执行 R 数据任务的技能,涵盖数据处理、统计分析、可视化、报告、Shiny 应用和程序包开发。
主要功能
- 01使用 tidyverse 转换数据框
- 02制作 ggplot2 可视化图表
- 03拟合统计模型
- 04生成 RMarkdown 报告
- 05开发 Shiny 应用和 R 程序包
适用场景
- 01清理和转换表格数据集
- 02绘制分布图或变量关系图
- 03执行回归分析
- 04创建交互式仪表板或可复现报告
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill coding-r安装后在 Claude Code 中输入/coding-r确认已加载。
详细介绍
目的
此技能可让 AI 使用 tidyverse、ggplot2 等包执行 R 编程任务,用于数据处理、可视化和分析,重点涵盖数据框、统计建模、RMarkdown 报告、Shiny 应用和包开发。
适用场景
- 使用数据框处理表格数据,例如清理和转换数据集时。
- 使用 ggplot2 创建可视化图表,例如散点图或直方图时。
- 在统计建模场景中使用,例如对数据集进行线性回归时。
- 构建 Shiny 交互式应用,或通过 RMarkdown 生成报告时。
- 为自定义数据科学工作流开发或扩展 R 包时。
主要能力
- 使用 tidyverse 函数处理数据框(例如,使用 dplyr 进行筛选和变异)。
- 使用 ggplot2 生成图表,包括图层、主题和分面。
- 使用 base R 或 lm() 等包进行统计建模。
- 创建 RMarkdown 文档以生成可复现报告,包括代码块和输出。
- 使用 Shiny 开发交互式仪表板,并使用 devtools 开发包。
- 集成到数据科学流水线中,例如从 CSV 读取数据或连接数据库。
使用模式
在 Agent 命令中始终在 R 代码前加上技能 ID "coding-r",例如:"Use coding-r to load and plot data"。在回复中通过代码块调用,并确保脚本自包含。对于多步骤任务,将其拆分为函数:先加载库,再处理数据,最后输出结果。复杂工作流使用 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 将 R 代码嵌入 Python(例如,import rpy2.robjects as robjects; robjects.r('library(tidyverse)')),或使用 reticulate 实现 Python-R 互通,将 R 代码集成到更大的工作流中。对于 Web 服务,可将 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" 集群则关联通用编程工具