【发布时间】:2019-11-05 15:55:25
【问题描述】:
我正在使用 RSQLite 包成功将数据写入本地 SQLite 数据库。
我希望能够将选择查询的结果导出到 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)
Sqlite 文档只提供了一种使用命令行或 SQLiteStudio 导出的方法。我想在我的 R 代码中实现这一点。
RSQLite 包文档建议使用,例如:
dbReadTable(con, "mtcars", row.names = FALSE)
当我用它替换 dbSendQuery 行时,这会导致错误:
Warning message: Expired, result set already closed
请谁能指出我遗漏了什么?
谢谢!
【问题讨论】:
标签: r excel export recordset rsqlite