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

时间:2017-05-06 12:53:15

标签: r r-dbi rnotebook

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

当我运行所有然后预览它完美地工作但是当我编织它时我得到错误:" eval中的错误(expr,envir,enclos):object' x'找不到"。

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

---
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,]
```

我正在使用:

  • R版本3.4.0(2017-04-21)
  • 平台:i386-w64-mingw32 / i386(32位)
  • 在以下位置运行:Windows 7 x64(内部版本7601)Service Pack 1
  • RStudio 1.0.143
  • DBI_0.6-1
  • knitr_1.15.1

该示例使用sqlitetutorial.net http://www.sqlitetutorial.net/download/sqlite-sample-database/?wpdmdl=94中的SQLite示例数据库。

我也尝试过不同类型的数据库而没有任何成功。

2 个答案:

答案 0 :(得分:1)

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

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

```

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

答案 1 :(得分:1)

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

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

它对我有用。