如何将 dtplyr 应用于 SQL Server 数据库

问题描述

我正在尝试将 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 风格)。