如何解决R Markdown(Knit)“'closure'不能被子集化”?

Dro*_*ird 2 r knitr r-markdown

我正在尝试第一次使用RMarkdown(Knit)生成pdf。默认文件(“文件”>“新文件”>“ R Markdown”)运行良好,编译后会显示生成的pdf。例如,以下代码运行,

```{r cars}
summary(cars)
```
Run Code Online (Sandbox Code Playgroud)

但是,如果我只是用“ myData”换车,它不会编译并显示,

Error in object[[i]] : object of type 'closure' is not subsettable
Calls: <Anonymous> ... withVisible -> eval -> eval -> summary -> summary.default
Execution halted
Run Code Online (Sandbox Code Playgroud)

我在全局环境中加载了“ myData”,并且可以在原始R脚本中执行其他操作。有人可以提供一些指南吗?非常感谢您的宝贵时间。

lmo*_*lmo 5

运行Rmarkdown文件将启动一个新的R会话。

在新会话中,您可以加载存储在data包中的data.frames ,但是必须从Rmarkdown文档中加载其他数据集。

为了使myData显示在Rmarkdown文档中,

  1. 将文件保存save在当前R会话中的某个位置
  2. 然后在您的Rmarkdown文档中,使用load来打开数据集

因此,在您当前的R会话中:

save(myData, file="<path>/myData.Rdata")
Run Code Online (Sandbox Code Playgroud)

并在您的Rmarkdown文件中:

```{r myDataSummary}
load("<path>/myData.Rdata")
summary(myData)
```
Run Code Online (Sandbox Code Playgroud)

如果您的数据存储为文本文件,并且您不想存储单独的.R文件,请read.csv在Rmarkdown文件中直接使用或朋友。

```{r myDataSummary}
myData <- read.csv("<path>/myCSV.csv")
summary(myData)
```
Run Code Online (Sandbox Code Playgroud)