当使用 sql 块分配数据帧时,R 笔记本不会编织

R notebook won't knit when data frame has been assigned from with sql chunk

我有一个 R 笔记本,我在其中使用 sql 块从数据库中读取数据,然后将其分配给数据框。然后我想在 R 笔记本中的 R 块中使用它,所以我在 sql 块中使用 output.vars 选项。

当我 运行 all 然后预览它完美地工作但是当我编织它时我得到错误:"Error in eval(expr, envir, enclos) : object 'x' not found".

以下是一些可以重现此错误的简单代码:

---
title: "R Notebook"
output:
  html_notebook: default
  html_document: default
---

```{r setup}
library(DBI)
library(RSQLite)
db = dbConnect(SQLite(), dbname = "C:/R/chinook.db")
```

```{sql connection = db, output.vars = 'x'}
SELECT * FROM artists
```

```{r}
x[1:10,]
```

我正在使用:

该示例使用来自 sqlitetutorial.net http://www.sqlitetutorial.net/download/sqlite-sample-database/?wpdmdl=94.

的 SQLite 示例数据库

我也尝试过不同类型的数据库,但都没有成功。

我不确定中间的语法块是否有效。你为什么不喜欢:

```{r}
library(DBI)
library(RSQLite)
db <- dbConnect(SQLite(), dbname = "C:/R/chinook.db")
x <- dbGetQuery(db, 'SELECT * FROM artists')

```

```{r}
x[1:10,]
```

我认为你必须将 output.vars 更改为 output.var

```{sql connection = db, output.var = 'x'}
SELECT * FROM artists
```

对我来说很管用。