如何将数据从Postgresql数据提取到数据框以与sqldf一起使用

时间:2019-06-04 13:02:09

标签: r postgresql sqldf

我已使用postgresql成功连接到RStudio中的postgres数据库,并提取了必要的数据。没问题。 问题是,现在我在RStudio中拥有数据集,我希望能够使用sqldf将其作为数据帧进行查询。这就是问题所在。

我已经尝试了以下代码

tab1 <-  DBI::dbGetQuery(con, "SELECT   a.user_id
                                     ,a.some_id1
                                     ,a.some_id2
                                     ,a.some_var1
                                     ,a.some_var2 
                                     ,a.some_var3 
                                     ,a.some_var4  
                                     ,a.some_var5
                                     ,b.some_var6  FROM sessions a LEFT JOIN session_experiments b on a.some_id1 = b.some_id2
                                      AND a.some_var1 = b.some_var1")

同样,这将返回我想在RStudio中看到的数据。 然后我尝试类似...

tab2 <- sqldf("SELECT COUNT (DISTINCT some_id1) FROM tab1")

...我看到以下错误。

Error in postgresqlNewConnection(drv, ...) : 
  RS-DBI driver: (could not connect postgres@localhost:5432 on dbname "test": could not connect to server: Connection refused
    Is the server running on host "localhost" (::1) and accepting
    TCP/IP connections on port 5432?
could not connect to server: Connection refused
    Is the server running on host "localhost" (127.0.0.1) and accepting
    TCP/IP connections on port 5432?
)
Error in !dbPreExists : invalid argument type

承认postgresql不是我以前使用过的软件包,因此会有所帮助。

预先感谢

1 个答案:

答案 0 :(得分:0)

好吧,似乎问题出在以下事实:还原到sqldf时,您需要明确指定驱动程序和dbname,如以下示例所示:

Table(lc, colWidths=[0.5*inch,0.7*inch,2*inch,2*inch, 1*inch])

我对此一无所知,但这可以解决我的问题,因此我将考虑回答的问题。

在此处了解更多信息

https://www.r-bloggers.com/using-postgresql-in-r-a-quick-how-to/