首页 > 解决方案 > 我应该如何将自定义函数导入 RMardown 文件?

问题描述

source(functions.R)我经常将自定义函数保存在 R 脚本中,我在 R 脚本的开头使用这些函数将其加载到环境中。

假设我现在想创建一个 RMarkdown 文档来总结我的一些分析结果,这些结果依赖于这些函数。我不想将这些函数复制粘贴到 .Rmd 文件中(有很多函数,我可能会随着时间的推移对其进行修改)。

我应该如何在 .Rmd 文件中加载这些函数?现在我只是source(functions.R)在 .Rmd 文件中的代码块中使用,但我不确定这是否是最佳实践。

示例:我有两个文件:functions.Rreport.Rmd

功能.R:

mySum <- function(a, b) {return(a + b)}

报告.Rmd:

---
title: "Report"
output: pdf_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
source('functions.R')
```

The sum of 4 and 5 is `r mySum(4, 5)`

标签: rr-markdown

解决方案


不要那样做。按照@N.Williams 的建议去做:如果您有值得重复使用的代码,请将其放入一个包中。

不仅仅是包含其功能的脚本。文档说明了每个功能应该做什么。如果将来您决定更改他们的工作,您将知道您是否违反了文档中包含的隐含合同。如果您这样做,您将需要检查该功能的每次使用以查看更改是否重要。


推荐阅读