Попытка использовать dplyr для выбора / фильтрации данных в базе данных SQL в R - PullRequest
0 голосов
/ 01 февраля 2019

Для одного из моих назначений мне нужно использовать dplyr для выбора / фильтрации информации из базы данных SQL, которая была загружена в R. Я успешно подключился к базе данных, но у меня возникли проблемы с использованием dplyr для сортировки таблиц.

Вот мой код:

library(DBI)
library(RMySQL)
library(dplyr)
conn <- dbConnect(RMySQL::MySQL(), "richardtwatson.com", 
dbname="ClassicModels", user="student", password="student")
t <- select(conn, customerNumber.Customers)

Я продолжаю получать это сообщение об ошибке:

Ошибка в UseMethod ("select_"):
неприменимометод для select_ применяется к объекту класса "c ('MySQLConnection', 'DBIConnection', 'DBIObject')".

Если бы кто-то мог направить меня в правильном направлении, что было бы здорово, я новичок в программировании на R.Спасибо!

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Если вы хотите использовать синтаксис dplyr через ODBC / DBI вместо SQL:

  1. Подключитесь к предпочитаемой вами базе данных с помощью dbConnect (как указано выше)
  2. Укажите на таблицу t <- tbl(conn, 'some_table')
  3. Таблица запросов с t %>% select(some_col_1, some_col_2) %>% filter(some_col == 'some_crit')
  4. Не забудьте отключить dbDisconnect(conn)

Этот метод переводит dplyr в SQL перед запуском на сервере.Я нахожу для некоторых операций, вам нужно сначала преобразовать в тиббл %>% as_tibble()

0 голосов
/ 02 февраля 2019

Вы должны использовать функции из пакета DBI для отправки или получения запроса и записи SQL-запроса в функцию с помощью SELECT.Примеры здесь: https://db.rstudio.com/dbi/

conn <- dbConnect(RMySQL::MySQL(), 
"richardtwatson.com",dbname="ClassicModels", user="student", password="student")

t <- dbGetQuery(conn, "SELECT * FROM customerNumber.Customers")
...