Версия PostgreSQL: 11
Версия R: 3.5.2
ОС: Windows 10
Драйвер: PostgreSQL ANSI (x64)
library(RODBC)
library(sqldf)
conn = odbcConnect("DVDRental") #works
odbcDataSources() #works
sqlTables(conn) #works
customers = sqldf(connection = conn, "select * FROM customer") #fails
Сообщение об ошибке: Ошибка в (функции (классы, fdef, mtable): невозможно найти унаследованный метод для функции «dbGetQuery» для сигнатуры «character», «character» ’
Есть ли новый способ подключить R к Postgres? Поиск в Google обнаруживает мешанину кода, ни один из которых, похоже, не работает.
Если вы хотите попробовать и запустить это, вы можете скачать образец базы данных, который я использую здесь: http://www.postgresqltutorial.com/postgresql-sample-database/
Я использую DSN под названием DVDRental.
Документация для чего? Для R, для RODBC? Для sqldf? Этот код отлично работал в 2015 году. Я понятия не имею, что изменилось, но что-то изменилось.
Я имел в виду sqldf, поскольку это то, что вы используете для выполнения запроса sql.





Используйте библиотеку RPostgreSQL для получения соединения, используя следующие параметры:
library(RPostgreSQL)
options(sqldf.RPostgreSQL.user = "postgres",
sqldf.RPostgreSQL.password = "password",
sqldf.RPostgreSQL.dbname = "test",
sqldf.RPostgreSQL.host = "localhost",
sqldf.RPostgreSQL.port =5432)
customers = sqldf("SELECT * FROM customer")
Это тоже не срабатывает с той же ошибкой. Пробовал с и без. Версия, которую я опубликовал, была именно тем, что лежало там после нескольких часов попыток понять, что должно быть самой простой задачей.
Вопрос обновлен, объект подключения не заключен в кавычки.
Вместо того, чтобы искать в сети, предложите вам прочитать документацию. В документации нет ничего, что предполагало бы, что то, что вы сделали, сработает.