对于我的一项任务,我必须使用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编程新手。谢谢!
答案 0 :(得分:1)
如果您想通过ODBC / DBI而不是SQL使用dplyr语法:
t <- tbl(conn, 'some_table')
t %>% select(some_col_1, some_col_2) %>% filter(some_col == 'some_crit')
的查询表dbDisconnect(conn)
此方法在服务器中运行之前将dplyr转换为SQL。我发现对于某些操作,您需要先转换为小标题%>% as_tibble()
答案 1 :(得分: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")