我有一个调用sqldf
包的R代码块。当我将Rmd编织成HTML时,HTML会打印并显示sqldf代码。我该如何隐藏/压制它?我已经尝试通过关闭ECHO
,抑制警告等来修改块设置......
这是我要从HTML中删除的打印文本:
' ## sqldf:library(RSQLite)
' ## sqldf:m< - dbDriver(" SQLite")
' ## sqldf:connection< - dbConnect(m,dbname =":memory:")
' ## sqldf:initExtension(连接)
' ## sqldf:dbWriteTable
....等。
这些是我的块的当前设置:
```{r sqldata, echo = FALSE, message=F, warning=F}
library(sqldf)
MyQuery <- sqldf(MyString,verbose=TRUE)
```
答案 0 :(得分:4)
如果您根本不想要任何输出(没有消息,没有数据框,没有显示代码......),请将include = FALSE
设置为块选项。
如果您想显示代码,但又不喜欢sqldf备注,请将verbose = TRUE
更改为verbose = FALSE
。
如果查看sqldf
代码,就会看到以下内容:
if (verbose) {
cat("sqldf: dbGetQuery(connection, '", x[i],
"')\n", sep = "")
}
因此,这些输出是由cat()
而不是message()
或warning()
生成的,所以对于knitr来说,它们与最后打印到控制台的对象无法区分。
如果你真的想用(sqldf选项)echo = TRUE
显示代码(chunk选项verbose = TRUE
),但你不想要所有详细的输出(看起来很奇怪)我&#39 ; d建议使用两个代码块来欺骗它,一个未评估但显示的代码块,以及一个已评估但未包含的代码块。
```{r sqldata, eval = FALSE}
library(sqldf)
MyQuery <- sqldf(MyString,verbose=TRUE)
```
```{r sqldata, eval = TRUE, include = FALSE}
library(sqldf)
MyQuery <- sqldf(MyString)
```