问题描述
我正在尝试将 dtplyr 应用于 sql Server 数据库。
我成功应用dplyr如下图,但我不知道如何应用dtplyr
我该怎么做?
library(odbc)
library(DBI)
library(tidyverse)
library(dtplyr)
library(dbplyr)
con <- DBI::dbConnect(odbc::odbc(),Driver = "sql Server",Server = "address",Database = "dbname",UID = "ID",PWD = "password")
dplyr::tbl(con,dbplyr::in_schema("dbo","table1"))
解决方法
@Waldi 的评论抓住了问题的本质。您可以不将 dtplyr 与 SQL Server 一起使用,因为它只会将命令转换为 data.table
对象。
官方 dtplyr documentation 声明:
dtplyr 的目标是允许您编写 dplyr 代码,该代码会自动转换为等效的 ...data.table 代码
官方 dbplyr documentation 声明:
它允许您通过自动将 dplyr 代码转换为 SQL 来像使用内存中的数据帧一样使用远程数据库表
dbplyr 和 dtplyr 都可以翻译 dplyr 命令。您使用哪一种取决于您使用的是 data.table
类型对象(在 R 内存中)还是远程 SQL 数据库(无论您喜欢哪种 SQL 风格)。