2016-11-18 4 views
0

私はdplyrオブジェクトc1を次のコードを使用して作成しました。dplyrからのSQLクエリはNULLを示します

library(dplyr) 
library(RSQLite) 
my_db <- src_sqlite("my.sqlite3", create = T) 
women_sqlite <- copy_to(my_db, women, temporary = TRUE) 
c1 <- filter(women_sqlite, height == 62) 

ここで、dplyrによって生成されたSQLクエリを表示します。 dplyr vignetteで示唆されているように、コマンドはc1$queryである必要があります。誰かが私にいくつかのヒントを与えることができれば、私は感謝します

SELECT * 
FROM `women` 
WHERE (`height` = 62.0) 

以下のクエリに類似した出力を期待してい

>c1$query 
NULL 

以下のようにしかし、これはもうSQLクエリを表示しません、代わりにnullを示し何が起こっているのかそれ以上望みのクエリを取得することは可能ですか?

R version 3.3.2 (2016-10-31) 
Platform: x86_64-apple-darwin13.4.0 (64-bit) 
Running under: OS X El Capitan 10.11.6 

locale: 
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] RSQLite_1.0.0 DBI_0.5-1  dplyr_0.5.0 

loaded via a namespace (and not attached): 
[1] lazyeval_0.2.0 magrittr_1.5 R6_2.2.0  assertthat_0.1 tools_3.3.2 tibble_1.2  Rcpp_0.12.8 
+0

あなたの 'copy_to'の使用は私には疑わしいと思われます。この関数は、 'src_sqlite'が返す' tbl_sql'オブジェクトではなく、2つのデータフレームを入力として取るべきです。 –

+0

@TimBiegeleisen dplyr [vignette](https://cran.r-project.org/web/packages/dplyr/vignettes/databases.html)を参照してください。そこに与えられた例も 'c1 $ query'の' NULL'を表示します –

+1

'show_query'を試しましたか? –

答えて

0

SQLデータソースの実装は0.5にdplyr 0.4.3から変更されたため、これは次のよう

マイRセッション情報です。クエリ(および実行計画)を取得するには、explainを使用します。

> explain(c1) 
<SQL> 
SELECT * 
FROM `women` 
WHERE (`height` = 62.0) 


<PLAN> 
    addr  opcode p1 p2 p3  p4 p5 comment 
1  0   Init 0 13 0   00 <NA> 
2  1  OpenRead 0 2 1  2 00 <NA> 
3  2  Rewind 0 11 0   00 <NA> 
4  3  Column 0 0 1   00 <NA> 
5  4 RealAffinity 1 0 0   00 <NA> 
6  5   Ne 2 10 1 (BINARY) 6d <NA> 
7  6   Copy 1 3 0   00 <NA> 
8  7  Column 0 1 4   00 <NA> 
9  8 RealAffinity 4 0 0   00 <NA> 
10 9 ResultRow 3 2 0   00 <NA> 
11 10   Next 0 3 0   01 <NA> 
12 11  Close 0 0 0   00 <NA> 
13 12   Halt 0 0 0   00 <NA> 
14 13 Transaction 1 0 2  0 01 <NA> 
15 14 TableLock 1 2 0 women 00 <NA> 
16 15   Real 0 2 0  62 00 <NA> 
17 16   Goto 0 1 0   00 <NA> 

explain機能がdplyr 0.4.3と0.5の両方で動作します。 queryコンポーネントの抽出など、隠された実装の詳細に頼るべきではありません。

関連する問題