5

I'm thinking of importing data from database directly into r using RPostgresQL package. So far, I used to write queries in Postico (a PostgreSQL client) software and export as csv and then import the csv file into R.
This is what I've written so far and no clue how to proceed next.

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

How do I load tables from the database into R after this or how to write queries in R to extract only necessary data from database?

4
  • 1
    ?dbSendQuery / ?dbGetQuery I mean, you have to read R manual pages at some point, right? Commented Nov 6, 2018 at 18:38
  • @hrbrmstr Yeah, I tried with dbWriteTable(con,"some_table_name",table_name,row.names=F) but I get an error that the object table_name not found. Commented Nov 6, 2018 at 18:54
  • Why are you using dbWriteTable() when your question says you want to load tables and extract data? Commented Nov 6, 2018 at 19:24
  • Sorry, my bad! I wasn't even sure if R was connected to the correct database. dbGetQuery() worked for me. Thanks! Commented Nov 6, 2018 at 19:50

1 Answer 1

7

Here is a straight answer to your question. This definitely can be extended

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
Sign up to request clarification or add additional context in comments.

2 Comments

Also, i recommend writing your credintials in .Renviron or .Rprofile instead of hardcoding on your credentials on the scripts.
This answer was close but did not work for me : you need to change the driver name to "PostgreSQL" (as mentioned in the question, this might be a typo).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.