如何在Sweave中使用SQL查询格式化R源代码,而不删除我的换行符?

Joh*_*ohn 4 mysql latex r sweave

我正在使用R,MySQL,Sweave和LaTeX生成查询数据库的报告.我的问题是,由于R代码嵌入在.Rnw文件中,我似乎无法控制多行格式化.

我嵌入了以下R代码:

library(RMySQL)

con <- dbConnect(MySQL(), 
user='test_user', 
dbname='sakila', 
host='localhost', 
password='password')

data <- dbReadTable(con, 'film_list')

query <-('
SELECT category, count(FID) AS Number 
FROM film_list 
GROUP by category')

Cat <- dbGetQuery(con, query)

Cat
Run Code Online (Sandbox Code Playgroud)

然后我在Sweave生成的PDF中获得以下输出:

> library(RMySQL)
> con <- dbConnect(MySQL(), user = "test_user", dbname = "sakila",
+ host = "localhost", password = "password")
> data <- dbReadTable(con, "film_list")
> query <- ("\nSELECT category, count(FID) AS Number \nFROM film_list \nGROUP by category")
> Cat <- dbGetQuery(con, query)
> Cat
Run Code Online (Sandbox Code Playgroud)

结果是SELECT查询在页面上运行.

有没有办法让LaTeX输出显示SQL查询?

Rei*_*son 9

keep.source选项添加到代码块选项并将其设置为true

<<foo,keep.source=TRUE>>=
query <- '
SELECT category, count(FID) AS Number
FROM film_list
GROUP by category'
@
Run Code Online (Sandbox Code Playgroud)

在乳胶来源中对此进行了处理:

\begin{Schunk}
\begin{Sinput}
> query <- '
+ SELECT category, count(FID) AS Number
+ FROM film_list
+ GROUP by category'
\end{Sinput}
\end{Schunk}
Run Code Online (Sandbox Code Playgroud)

如果标准Sweave包装不符合您的喜好,您可以在最终PDF中自由调整源代码以满足您的需求.您可以在问题中包含问题中的所有代码,我只使用了SQL位,因为这是您遇到的问题.

您不需要()分配您指定的字符串query.