【问题标题】:How to import data from PostgreSQL database to R?如何将数据从 PostgreSQL 数据库导入 R?
【发布时间】:2018-11-06 18:14:24
【问题描述】:

我正在考虑使用 RPostgresQL 包将数据从数据库直接导入 r。到目前为止,我曾经在Postico(一个PostgreSQL客户端)软件中编写查询并导出为csv,然后将csv文件导入R。
这是我到目前为止写的内容,不知道下一步如何进行。

library('RPostgreSQL')
pg=dbDriver("PostgreSQL")
con = dbConnect(pg, user="msahil515", password="",
            host="localhost", port=5432, dbname="msahil515")

在此之后如何将数据库中的表加载到 R 中,或者如何在 R 中编写查询以仅从数据库中提取必要的数据?

【问题讨论】:

  • ?dbSendQuery / ?dbGetQuery 我的意思是,你必须阅读 R 手册页,对吧?
  • @hrbrmstr 是的,我尝试使用dbWriteTable(con,"some_table_name",table_name,row.names=F),但我收到一个错误,即找不到对象table_name
  • 当您的问题是要加载表和提取数据时,您为什么要使用dbWriteTable()
  • 对不起,我的错!我什至不确定 R 是否连接到正确的数据库。 dbGetQuery() 为我工作。谢谢!

标签: r postgresql rpostgresql postico


【解决方案1】:

这是您问题的直接答案。这绝对可以扩展

library('RPostgreSQL')

#create connection object
con <- dbConnect(drv =PostgreSQL(), 
                 user="msahil515", 
                 password="",
                 host="localhost", 
                 port=5432, 
                 dbname="msahil515")

dbListTables(con)   #list all the tables 

#query the database and store the data in datafame
first_results <- dbGetQuery(con, "SELECT * from FOO limit 10;")

dbDisconnect(con)   #disconnect from database

【讨论】:

  • 另外,我建议您在 .Renviron 或 .Rprofile 中编写您的凭据,而不是在脚本上对您的凭据进行硬编码。
  • 这个答案很接近,但对我不起作用:您需要将驱动程序名称更改为“PostgreSQL”(如问题中所述,这可能是一个错字)。
猜你喜欢
  • 2016-11-29
  • 2012-10-20
  • 1970-01-01
  • 1970-01-01
  • 2016-10-16
  • 2021-10-20
  • 1970-01-01
  • 1970-01-01
  • 2019-08-04
相关资源
最近更新 更多