尝试使用dplyr在R中的SQL数据库中选择/过滤数据

问题描述 投票:0回答:2

对于我的一个任务,我必须使用dplyr从已加载到R的SQL数据库中选择/过滤信息。我已成功连接到数据库但我无法使用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编程的新手。谢谢!

sql r dplyr dbi
2个回答
1
投票

如果您想通过ODBC / DBI而不是SQL使用dplyr语法:

  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。我找到一些操作,你需要先转换为tibble %>% as_tibble()


0
投票

您必须使用DBI包中的函数来发送或获取查询,并使用SELECT在函数中记下SQL查询。这里的例子:https://db.rstudio.com/dbi/

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

t <- dbGetQuery(conn, "SELECT * FROM customerNumber.Customers")
© www.soinside.com 2019 - 2024. All rights reserved.