为什么 source 函数在 R Markdown 中不起作用?

Why won't source function work in R Markdown?

更多的是概念性问题,而不是严格的编码问题。我有一个 .R 脚本专门用于导入和清理我的数据。我有几个不同的 .Rmd 脚本,它们使用来自一般清理 .R 脚本的数据来 运行 他们的具体分析。我希望能够 source("DataCleaning.R") 在每个 .Rmd 脚本的开头,这样我就可以减少冗余,但是我收到了这个错误:

'Pulling' is not recognized as an internal or external command,
operable program or batch file.

我可以通过导出和导入 .csv 来解决这个问题,但我有点困惑为什么 source() 不起作用。我已经在几台电脑上试过了。在 .R 中工作正常但在 .Rmd 中不工作。会发誓我过去在 .Rmd 中使用过它。我重新阅读了它的文档。我找不到其他人报告这个确切的错误消息,但我试图找到包含代码的文件以仔细查看 'Pulling'.

问题:

source 是否在 .Rmd 中不起作用,或者这是一个独特的案例?

更新:

我设法通过卸载 R 和 R Studio 并重新安装它们来解决问题。更新它们没有用。 source 的代码对我来说看起来不错。仍然对此有点摸不着头脑,因为它在常规 R 脚本中工作,但在 R markdown 中不起作用,并且在两台不同的机器上给了我一个问题,当我完全重新安装时,这两个问题都得到了解决。我想它现在已经修复了,但不确定它可能是什么。

这个问题因非特异性而被关闭并且没有提供可重现的代码,但是,同样,这些标准不能真正适用于这种情况,因为它是一个特定于机器的问题。我只需要知道我是否误解了函数的作用。希望更新解决了批评,但显然如果没有,请随时再次关闭它。

source 在 .Rmd 中确实有效。这是一个可重现的例子来证明这一点:

---
title: "Untitled"
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
fname = tempfile()
writeLines('print("hello")', fname)
```

```{r}
source(fname)
```

您遇到的错误一定是由外部文件的内容引起的。