1.如何创建R包
library(devtools)
library(roxygen2)
pkg_file <- build("D:/charls") # 打包为 .tar.gz
message("包已生成于:", pkg_file)
1.1首先安装:
install.packages(c("devtools", "roxygen2"))
1.2 R包的文件结构
myPackage/
├── DESCRIPTION # 包的元信息(必须)
├── NAMESPACE # 导出函数定义(必须)
├── R/ # 存放 R 脚本文件(必须)
│ └── myfunctions.R
├── data/ # 可选:存放 .rda 数据文件
├── man/ # 可选:帮助文档(由 roxygen2 自动生成)
├── inst/ # 可选:额外资源文件(如 config、doc 等)
└── README.md # 可选:说明文档
1.3 创建 R 包并打包
步骤 1:创建基础结构(可选)
如果你还没有完整结构,可以用 devtools
快速生成:
library(devtools)
create_package("path/to/myPackage")
步骤 2:编写 DESCRIPTION 文件(必须)
打开 DESCRIPTION
文件,填写基本元信息,例如:
Package: myPackage
Title: My First R Package
Version: 0.1.0
Author: Your Name <your.email@example.com>
Maintainer: Your Name <your.email@example.com>
Description: A short description of what the package does.
License: MIT
Depends:
R (>= 3.5.0)
Imports:
dplyr,
ggplot2
步骤 3:生成 NAMESPACE 文件(必须)
你可以手动写,也可以用 roxygen2
自动生成:
方法 A:手动写(不推荐)
在 NAMESPACE
中写:
exportPattern("^[^\\.]") # 导出所有非以 . 开头的函数
方法 B:使用 roxygen2
自动生成(推荐)
在 R 函数中添加注释格式帮助文档:
#' 计算两个数的和
#' @param a 第一个数
#' @param b 第二个数
#' @return 两数之和
add <- function(a, b) {
a + b
}
然后运行:
library(roxygen2)
roxygenise("path/to/myPackage")
这会自动生成 NAMESPACE
和 man/
帮助文档。
步骤 4:构建包(打包)
在 R 控制台中运行:
# 构建 .tar.gz(适用于 Linux/macOS)
pkg_path <- devtools::build(path = "path/to/myPackage")
print(pkg_path) # 输出包路径,比如:"/path/to/myPackage_0.1.0.tar.gz"
# 如果你想构建 Windows 二进制包(需要 Rtools)
devtools::build_win(path = "path/to/myPackage")
步骤 5:安装本地包
install.packages("path/to/myPackage_0.1.0.tar.gz", repos = NULL, type = "source")
参数说明:
pkgs: 本地包文件的路径;
repos = NULL: 表示不从远程仓库安装;
type: 指定安装类型:
"source":适用于 Linux/macOS,安装源码包;
"win.binary":适用于 Windows 的 .zip 二进制包;
如果省略,R 会自动识别。
快速打包
library(devtools)
library(roxygen2)
# 创建空包(如果还没结构)
create_package("myPackage")
# 添加函数、数据等后:
roxygenise("myPackage") # 生成帮助文档和 NAMESPACE
pkg_file <- build("myPackage") # 打包为 .tar.gz
message("包已生成于:", pkg_file)