2016-08-08 3 views
2

Ich kann Rmarkdown Dokumente mit Rscript nicht rendern, wenn sie dplyr SQLite Aufrufe in ihnen haben. Nehmen Sie diese MWE (test.Rmd), die für eine Tabelle in einer lokalen Kopie der dplyr::lahman_sqlite() Tabelle aufruft.RMarkdown wird nicht von Rscript mit SQLite-Verbindung rendern

--- 
title: "TestFile" 
output: html_document 
--- 

```{r setup, include=FALSE} 
library(dplyr) 
lahman <- src_sqlite("lahman.sqlite") 
``` 

```{r} 
tbl(lahman, "Batting") 
``` 

In einer Sitzung Live-R-Konsole kann ich rmarkdown::render("test.Rmd") nennen, und dieses Dokument wird als erwartet gebaut. Aber wenn ich Rscript -e 'rmarkdown::render("test.Rmd")' auf der Kommandozeile aufrufen, erhalte ich folgende Fehlermeldung:

Quitting from lines 12-13 (test.Rmd) 
Error in UseMethod("db_query_fields") : 
    no applicable method for 'db_query_fields' applied to an object of class "SQLiteConnection" 
Calls: render ... make_tbl -> structure -> op_base_remote -> db_query_fields 

ich meine Session unten angehängt habe, aber ich habe diesen Fehler auf OS X sowie Ubuntu dupliziert.

R version 3.3.1 (2016-06-21) 
Platform: x86_64-apple-darwin15.5.0 (64-bit) 
Running under: OS X 10.11.6 (El Capitan) 

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] dplyr_0.5.0 

loaded via a namespace (and not attached): 
[1] Rcpp_0.12.5  digest_0.6.9 assertthat_0.1 R6_2.1.2  DBI_0.4-1  formatR_1.4  magrittr_1.5 evaluate_0.9 
[9] RSQLite_1.0.0 stringi_1.1.1 rmarkdown_0.9.6 tools_3.3.1  stringr_1.0.0 Lahman_4.0-1 yaml_2.1.13  htmltools_0.3.5 
[17] knitr_1.13  tibble_1.0 
+0

fügen Sie ein 'requireNamespace (" RSQLite ")' nach der 'dplyr'' library() 'Aufruf – hrbrmstr

+0

@hrbrmstr der Fehler ist immer noch da. Und das Laden der dplyr-Bibliothek lädt diesen Namespace bereits. – gregmacfarlane

+0

Auf der anderen Seite funktioniert der explizite Aufruf von 'library (RSQLite)' tatsächlich. Seltsam, dass Rscript mit Namespace-Calls rumhängt ... – gregmacfarlane

Antwort

3

Das Problem kommt von der Tatsache, dass, wenn das Rscriptmethods Paket mit nicht geladen ist. Es muss daher explizit geladen werden, indem beispielsweise library(methods) im Setup-Chunk hinzugefügt wird.

Verwandte Themen