当使用RPostgreSQL
时,我发现无法以相同的方式使用sqldf
。例如,如果我加载库并使用以下代码将数据读入数据框:
library(RPostgreSQL)
drv <- dbDriver("PostgreSQL")
con <- dbConnect(drv, host="localhost", user="postgres", password="xxx", dbname="yyy", port="5436")
rs <- dbSendQuery(con, "select * from table");
df<- fetch(rs, n = -1); dbClearResult(rs)
dbDisconnect(con)
我知道这个表格的内容存储在名为df
的数据框中。不过,如果我想要使用sqldf
运行SQL命令,我以前会像这样做:
sqldf("SELECT * FROM df WHERE X > 10")
这不再起作用了,因为我收到了错误消息:
Error in postgresqlNewConnection(drv, ...) :
RS-DBI driver: (could not connect postgres@localhost on dbname "test"
)
Error in !dbPreExists : invalid argument type
我想这可能是我的操作错误,但我无法弄清楚应该提供什么参数给sqldf
,使它只关注数据框而不尝试连接其他任何内容。