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
fügen Sie ein 'requireNamespace (" RSQLite ")' nach der 'dplyr'' library() 'Aufruf – hrbrmstr
@hrbrmstr der Fehler ist immer noch da. Und das Laden der dplyr-Bibliothek lädt diesen Namespace bereits. – gregmacfarlane
Auf der anderen Seite funktioniert der explizite Aufruf von 'library (RSQLite)' tatsächlich. Seltsam, dass Rscript mit Namespace-Calls rumhängt ... – gregmacfarlane