2017-05-06 9 views
1

私は、SQLチャンクを使用してデータベースからデータを読み込み、それをデータフレームに割り当てるRノートブックを持っています。私はRのノートブック内のRのチャンクでそれを使用したいので、SQLのチャンクでoutput.varsオプションを使用しています。Rノートブックは、データフレームがsqlチャンクから割り当てられたときには編まない

私はすべてを実行し、それをプレビューすると完全に動作しますが、ニットするとエラーが表示されます: "eval(expr、envir、enclos)のエラー:オブジェクト '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年4月21日)
  • プラットフォーム: i386-w64-mingw32/i386(32ビット)
  • 実行中:Windows 7 x64(ビルド7601)サービスパック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のサンプルデータベースを使用します。

私はまた、成功することなくさまざまな種類のデータベースを試しました。

答えて

1

:好きな理由あなただけ行いません。

+0

ありがとうSraffa - 愚かな私。見つけにくいのは、 'output.vars'を使用しているときに個々のチャンクを実行しているときに、個々のチャンクがRにデータフレームを渡すということでした。 – Colin

1

真ん中の構文チャンクが機能するかどうかはわかりません。私はあなたがそれはそのように私の作品output.vars

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

output.varに変更する必要があると思います

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

``` 

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

これは面白いと思うのですが、[knitr v。1.14](http://rmarkdown.rstudio.com/authoring_knitr_engines.html)にSQLエンジンが追加されているので、構文が機能するはずです。 OPは1つの議論のスペルを間違えたと思う。 – Sraffa

+0

ありがとうございます。知っておいてよかった。 –

関連する問題