R将SQLiteResult记录集导出为Excel或csv

R将SQLiteResult记录集导出为Excel或csv,r,excel,export,recordset,rsqlite,R,Excel,Export,Recordset,Rsqlite,我正在使用RSQLite包成功地将数据写入本地SQLite数据库 我希望能够将select查询的结果导出到Excel。问题在于结果记录集的类是: >class(rs) [1] "SQLiteResult" attr(,"package") [1] "RSQLite" 我找不到将其导出到Excel的方法。使用标准方法的错误消息为: Error in as.data.frame.default(x[[i]], optional = TRUE) : cannot coerce class ‘

我正在使用RSQLite包成功地将数据写入本地SQLite数据库

我希望能够将select查询的结果导出到Excel。问题在于结果记录集的类是:

>class(rs)
[1] "SQLiteResult"
attr(,"package")
[1] "RSQLite"
我找不到将其导出到Excel的方法。使用标准方法的错误消息为:

Error in as.data.frame.default(x[[i]], optional = TRUE) : 
cannot coerce class ‘structure("SQLiteResult", package = "RSQLite")’ to a 
data.frame
我尝试过各种谷歌搜索,并阅读了RSQLite和SQLite文档

导致“强制”错误的示例代码:

library(RSQLite)
con <- dbConnect(RSQLite::SQLite(), ":memory:")
dbWriteTable(con, "mtcars", mtcars)
res <- dbSendQuery(con, "SELECT * FROM mtcars WHERE cyl = 4")
dbFetch(res)
write.csv(res, file = "C:/test.csv")
dbClearResult(res)
dbDisconnect(con)
当我用它替换dbSendQuery行时,这会导致一个错误:

Warning message: Expired, result set already closed 
有人能指出我遗漏了什么吗


谢谢

您可以使用函数
DBI::dbGetQuery
将结果返回为R data.frame,然后将其写入csv文件。这负责为您发送查询、检索结果和清除结果集。看

library(RSQLite)#还附加了DBI名称空间
骗局
Warning message: Expired, result set already closed 
library(RSQLite) # Also attaches DBI namespace
con<- dbConnect(RSQLite::SQLite(), ":memory:")
dbWriteTable(con, "mtcars", mtcars)
res<- dbGetQuery(con, "SELECT * FROM mtcars WHERE cyl = 4")
write.csv(res, "test.csv")
dbDisconnect(con)