一键配置 R 语言机器学习/数据科学环境
R 语言环境配置,从未如此简单!
痛点:配置 R 语言 ML 环境总是遇到各种问题
- ❌ 包版本冲突(ggplot2 vs dplyr 版本不兼容)
- ❌ 不知道用什么包处理什么任务
- ❌ 每次新项目都要手动安装一堆包
- ❌ renv 配置复杂,小白不知道从何入手
解决方案:一条命令搞定一切
- ✅ 10 种预配置环境模板,覆盖各种 ML 场景
- ✅ 基于 renv 的依赖隔离
- ✅ 自动创建标准项目结构
- ✅ 包含示例代码,快速上手
# 从 GitHub 安装
remotes::install_github("YuanyuanMa03/ml-easy-setup-R")
# 或从 CRAN 安装(发布后)
install.packages("ml.easy.setup")library(ml.easy.setup)
# 创建数据科学项目
create_project("data-analysis", template = "data_science")
# 创建深度学习项目
create_project("deep-learning", template = "deep_learning")
# 列出所有模板
list_templates()# 创建项目
Rscript -e "ml.easy.setup::ml_setup('create my-project data_science')"
# 列出模板
Rscript -e "ml.easy.setup::ml_setup('list')"
# 检测系统
Rscript -e "ml.easy.setup::ml_setup('detect')"适合场景:入门学习、简单数据处理
create_project("quick-test", template = "minimal")包含包:
- tidyverse - 数据科学工具套件
- janitor - 数据清理
- here - 文件路径管理
- glue - 字符串拼接
适合场景:数据分析、统计建模、报告生成
create_project("data-project", template = "data_science")包含包:
- tidyverse - 完整数据科学工具链
- tidymodels - 现代 ML 建模框架
- caret - 经典 ML 包
- data.table - 高性能数据处理
- plotly - 交互式可视化
- rmarkdown - 动态报告生成
示例代码:
library(tidyverse)
library(tidymodels)
# 数据分割
split <- initial_split(df, prop = 0.75)
train <- training(split)
test <- testing(split)
# 定义模型
model_spec <- rand_forest(mtry = 4, trees = 1000) %>%
set_engine("randomForest") %>%
set_mode("classification")
# 训练
workflow <- workflow() %>%
add_model(model_spec) %>%
add_recipe(recipe)
fit <- fit(workflow, data = train)适合场景:传统 ML 算法、Kaggle 竞赛
create_project("ml-project", template = "ml_classic")包含包:
- caret - 统一建模接口
- xgboost - 梯度提升
- lightgbm - 高效梯度提升
- randomForest - 随机森林
- tidymodels - 现代 ML 框架
- vip - 变量重要性
- DALEX - 模型解释
示例代码:
library(caret)
library(xgboost)
# XGBoost 训练
model <- train(
target ~ .,
data = train_data,
method = "xgbTree",
trControl = trainControl(
method = "cv",
number = 5
),
tuneLength = 10
)
# 预测
predictions <- predict(model, test_data)
confusionMatrix(predictions, test_data$target)适合场景:神经网络、深度学习研究
create_project("dl-project", template = "deep_learning")包含包:
- tensorflow - Google 深度学习框架
- keras - 高级神经网络 API
- tfdatasets - TensorFlow 数据管道
示例代码:
library(keras)
# 构建模型
model <- keras_model_sequential() %>%
layer_dense(units = 128, activation = 'relu', input_shape = c(784)) %>%
layer_dropout(rate = 0.4) %>%
layer_dense(units = 64, activation = 'relu') %>%
layer_dropout(rate = 0.3) %>%
layer_dense(units = 10, activation = 'softmax')
# 编译
model %>% compile(
optimizer = 'adam',
loss = 'categorical_crossentropy',
metrics = c('accuracy')
)
# 训练
history <- model %>% fit(
x_train, y_train,
epochs = 20,
batch_size = 128,
validation_split = 0.2
)适合场景:数据可视化、图表制作
create_project("viz-project", template = "visualization")包含包:
- ggplot2 - 语法化图形
- plotly - 交互式可视化
- gganimate - 动画
- patchwork - 图表组合
- ggthemes - 主题
示例代码:
library(ggplot2)
library(patchwork)
# 创建图表
p1 <- ggplot(df, aes(x, y)) + geom_point()
p2 <- ggplot(df, aes(x, y)) + geom_line()
# 组合图表
p1 | p2适合场景:统计建模、假设检验、贝叶斯分析
create_project("stats-project", template = "statistics")包含包:
- lme4 - 线性混合模型
- nlme - 非线性混合效应
- rstanarm - 贝叶斯回归
- brms - 贝叶斯多级模型
- survival - 生存分析
示例代码:
library(lme4)
# 线性混合模型
model <- lmer(
response ~ predictor1 + predictor2 + (1|random_effect),
data = df
)
summary(model)
# 贝叶斯模型
library(brms)
model_bayes <- brm(
response ~ predictor1 + (1|random_effect),
data = df,
family = gaussian()
)适合场景:销量预测、金融分析、传感器数据
create_project("forecast-project", template = "time_series")包含包:
- fpp3 - 预测:原理与实践(第3版)
- forecast - 经典预测包
- prophet - Facebook Prophet
- timetk - 时间序列工具包
示例代码:
library(fpp3)
library(prophet)
# fpp3 方法
ts_data <- df %>%
as_tsibble(index = date)
fit <- ts_data %>%
model(ARIMA(value))
fit %>%
forecast(h = 12) %>%
autoplot()
# Prophet 方法
m <- prophet(df)
future <- make_future_dataframe(m, periods = 365)
forecast <- predict(m, future)
plot(m, forecast)适合场景:交互式 Web 应用、仪表板
create_project("shiny-app", template = "shiny")包含包:
- shiny - Web 应用框架
- shinydashboard - 仪表板
- DT - 交互式表格
- plotly - 交互式图表
- golem - Shiny 开发框架
示例代码:
library(shiny)
ui <- fluidPage(
titlePanel("My App"),
sidebarLayout(
sidebarPanel(
sliderInput("n", "Number:", min = 1, max = 100, value = 50)
),
mainPanel(
plotOutput("plot")
)
)
)
server <- function(input, output) {
output$plot <- renderPlot({
plot(rnorm(input$n))
})
}
shinyApp(ui, server)适合场景:R Markdown 报告、论文、书籍
create_project("report-project", template = "reporting")包含包:
- rmarkdown - 动态文档
- knitr - 文字编织
- bookdown - 书籍编写
- quarto - 新一代出版系统
- gt - 美化表格
- flextable - 表格导出
适合场景:基因组分析、差异表达
create_project("bio-project", template = "bioinformatics")包含包:
- Bioconductor - 生物信息学工具
- DESeq2 - 差异表达分析
- edgeR - RNA-seq 分析
- limma - 线性模型
- ComplexHeatmap - 复杂热图
适合场景:需要全方位工具的复杂项目
create_project("full-project", template = "full")创建的项目包含以下结构:
my-project/
├── R/ # R 源代码目录
├── data/ # 数据目录
│ ├── raw/ # 原始数据
│ └── processed/ # 处理后数据
├── reports/ # R Markdown 报告
├── figures/ # 图表输出
├── notebooks/ # R Notebook
├── renv.lock # 依赖锁定文件
├── .Rprofile # R 配置文件
├── .gitignore # Git 忽略文件
└── .Rbuildignore # 构建忽略文件
create_project(
name, # 项目名称
template = "minimal", # 模板名称
path = getwd(), # 项目路径
init_git = FALSE, # 是否初始化 Git
quiet = FALSE # 静默模式
)init_renv(
project = getwd(), # 项目路径
packages = character(0) # 要安装的包
)add_packages(
packages, # 包名向量
project = getwd(), # 项目路径
type = "packages" # 类型
)detect_system()输出示例:
System Detection
================
Item Value
---------------- -------------
R Version 4.3.1
Platform x86_64-apple-darwin20
OS darwin
CPU Cores 8
Memory NA
renv Installed
RStudio Available
create_project("kaggle-titanic", template = "ml_classic")create_project("sales-report", template = "reporting")create_project("customer-dashboard", template = "shiny")create_project("research-dl", template = "deep_learning")create_project("demand-forecast", template = "time_series")# 安装开发版本
remotes::install_github("YuanyuanMa03/ml-easy-setup-R")
# 运行测试
testthat::test_dir("tests")
# 生成文档
devtools::document()- 添加更多领域模板(空间分析、网络分析等)
- 支持 Quarto 项目模板
- 集成 CI/CD 模板
- 添加 Docker 支持
- 发布到 CRAN
| 特性 | R 版本 | Python 版本 |
|---|---|---|
| 包管理 | renv | uv/venv |
| 预配置模板 | 10 种 | 13 种 |
| 项目结构 | R 标准 | Python 标准 |
| 语言特性 | R 生态 | Python 生态 |
欢迎贡献!请查看 CONTRIBUTING.md 了解详情。
本项目采用 MIT 许可证 - 详见 LICENSE 文件。
- renv - R 包管理
- cli - 命令行界面
- tidyverse - 数据科学工具链
- Python 版本: ml-easy-setup
⭐ 如果这个项目对您有帮助,请考虑给我们一个星标!
Made with ❤️ for the R community