如何使用box包一次性加载functions文件夹下所有R函数文件?
一次性加载functions文件夹下所有函数文件的方法
可以通过动态生成调用语句的方式实现,不用重复写box::use:
- 先获取
functions文件夹下所有.r/.R文件的名称:
# 获取所有R文件,过滤隐藏文件 func_files <- list.files("functions", pattern = "\\.[rR]$", full.names = FALSE) # 去除文件后缀,得到函数模块名 func_names <- tools::file_path_sans_ext(func_files)
- 循环加载每个函数模块:
for (name in func_names) { box::use(functions/[name]) }
也可以写成更简洁的一行代码:
lapply(tools::file_path_sans_ext(list.files("functions", pattern = "\\.[rR]$")), \(x) box::use(functions/[x]))
注意事项
- 确保
functions文件夹是box包可识别的模块目录,一般只要文件夹存在且内部是单个函数的R文件即可,无需额外配置文件 - 若需排除特定文件或子目录,可调整
list.files的pattern参数,或添加exclude条件过滤目标文件
内容的提问来源于stack exchange,提问作者Basil
相关产品推荐
相关产品推荐

