You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求在Rmarkdown文档中使用klmr::box引入库与本地函数的示例

在RMarkdown中使用klmr::box包的示例

klmr::box在RMarkdown里的用法很直接,不需要在YAML元数据里声明模块或库——所有导入逻辑都放在R代码块里就行,和普通R脚本写法一致。下面是具体示例:

1. 先确保安装了box包

如果还没安装,运行这段代码:

install.packages("klmr/box", repos = "https://klmr.r-universe.dev")

2. 导入CRAN包(按需加载指定函数)

在RMarkdown的代码块里,用box::use()导入需要的包或特定函数,比如只加载dplyr的filter和mutate:

# 导入指定函数,避免加载整个包
box::use(dplyr[filter, mutate])

# 演示用法
mtcars %>%
  mutate(gear_cat = ifelse(gear == 3, "3档", "其他")) %>%
  filter(mpg > 20)

3. 导入本地自定义模块

假设你在RMarkdown文件的同目录下,有一个名为utils.R的本地模块文件,内容如下:

# utils.R 模块内容
#' 加法函数
add_numbers <- function(a, b) {
  return(a + b)
}

#' 计算平方
square <- function(x) {
  return(x^2)
}

然后在RMarkdown里导入这个模块的指定函数:

# 导入本地模块的指定函数,路径相对于当前RMarkdown文件
box::use(./utils[add_numbers, square])

# 调用本地函数
add_numbers(2, 3)  # 输出5
square(4)          # 输出16

注意事项

  • 本地模块路径:用./开头表示当前RMarkdown所在目录,也可以用绝对路径,比如/Users/xxx/project/utils
  • 和Rhino的区别:Rhino框架有约定的模块目录结构(比如modules/文件夹),但RMarkdown里没有强制要求,只要路径正确就能导入
  • 模块重载:如果修改了本地模块内容,可以用box::reload(./utils)重新加载

内容的提问来源于stack exchange,提问作者Captain Tyler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 12:55:01