如何将 SQL 查询结果存储到 R 中的数据框中
How to store SQL query result into data frame in R
我想将 SQL 查询存储到数据框中以进行可视化,因为很难直接从 SQL 查询结果中绘制图表。下面是我到目前为止的 R 代码:
mydb = dbConnect(MySQL(),
user='root',
password='XXXXX',
dbname='Databasename',
port=3306)
dbListTables(mydb)
rs <- dbSendQuery(mydb, "SELECT XXX FROM XXX WHERE X = Y;")
dbFetch(rs)
如何使用 R 将 rs 存储到数据框?显然不能直接用data.frame函数转换。
我们可以将 dbFetch
输出分配给一个对象,然后使用 dbClearResult
清除结果
rs1 <- dbFetch(rs)
dbClearResult(rs)
现在,检查
str(rs1)
或者不使用 dbSendQuery/dbFetch
,而是使用 dbGetQuery
rs <- dbGetQuery(mydb, "SELECT XXX FROM XXX WHERE X = Y;")
使用可重现的例子
library(DBI)
con <- dbConnect(RSQLite::SQLite(), ":memory:")
dbWriteTable(con, "mtcars", mtcars)
rs <- dbSendQuery(con, "SELECT * FROM mtcars WHERE cyl = 4")
rs1 <- dbFetch(rs)
dbClearResult(rs)
dbDisconnect(con)
我想将 SQL 查询存储到数据框中以进行可视化,因为很难直接从 SQL 查询结果中绘制图表。下面是我到目前为止的 R 代码:
mydb = dbConnect(MySQL(),
user='root',
password='XXXXX',
dbname='Databasename',
port=3306)
dbListTables(mydb)
rs <- dbSendQuery(mydb, "SELECT XXX FROM XXX WHERE X = Y;")
dbFetch(rs)
如何使用 R 将 rs 存储到数据框?显然不能直接用data.frame函数转换。
我们可以将 dbFetch
输出分配给一个对象,然后使用 dbClearResult
rs1 <- dbFetch(rs)
dbClearResult(rs)
现在,检查
str(rs1)
或者不使用 dbSendQuery/dbFetch
,而是使用 dbGetQuery
rs <- dbGetQuery(mydb, "SELECT XXX FROM XXX WHERE X = Y;")
使用可重现的例子
library(DBI)
con <- dbConnect(RSQLite::SQLite(), ":memory:")
dbWriteTable(con, "mtcars", mtcars)
rs <- dbSendQuery(con, "SELECT * FROM mtcars WHERE cyl = 4")
rs1 <- dbFetch(rs)
dbClearResult(rs)
dbDisconnect(con)