如何使用 R 和 dplyr 连接不同 SQL 数据库中的表?

2024-02-10

我在用着dplyr (0.7.0), dbplyr (1.0.0), DBI 0.6-1, and odbc (1.0.1.9000)。我想做如下的事情:

db1 <- DBI::dbConnect(
  odbc::odbc(),
  Driver = "SQL Server",
  Server = "MyServer",
  Database = "DB1"
)
db2 <- DBI::dbConnect(
  odbc::odbc(),
  Driver = "SQL Server",
  Server = "MyServer",
  Database = "DB2"
)
x <- tbl(db1, "Table1") %>%
  dplyr::left_join(tbl(db2, "Table2"), by = "JoinColumn") 

但我不断收到一个似乎没有任何实质内容的错误。当我使用show_query代码似乎试图创建一个连接两个表的 SQL 查询,而不考虑单独的数据库。根据文档dplyr::left_join我也尝试过:

x <- tbl(db1, "Table1") %>%
      dplyr::left_join(tbl(db2, "Table2"), by = "JoinColumn", copy = TRUE) 

但输出或错误消息没有变化。是否有不同的方法来连接同一服务器上不同数据库的表?


我从您提供的代码中假设(a)您有兴趣加入这两个tbl对象通过dplyr的语法before你跑collect()并将结果拉入本地内存,并且 (b) 您希望在调用中直接引用数据库对象tbl().

如果您想利用这些选择,这些选择很重要dplyr以编程方式构建查询逻辑,同时利用数据库服务器将大量数据内连接到您感兴趣的集合。(或者至少这就是我最终来到这里的原因。)

我找到的解决方案使用一个连接而不指定数据库,并使用in_schema()(我在任何地方都找不到这个记录或插图):

conn <- DBI::dbConnect(
  odbc::odbc(),
  Driver = "SQL Server",
  Server = "MyServer"
)

x <- tbl(src_dbi(conn),
         in_schema("DB1.dbo", "Table1")) %>%
  dplyr::left_join(tbl(src_dbi(conn),
                       in_schema("DB1.dbo", "Table2")),
                   by = "JoinColumn")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 R 和 dplyr 连接不同 SQL 数据库中的表? 的相关文章

  • dplyr:连接中的 NSE (by)

    我很难弄清楚如何使用 dplyr left join 和 NSE 连接两个表 问题是我无法为 by 提供正确的值 我想我现在已经找到了解决方案 但感觉我正在以一种额外复杂的方式来做 因此 如果您知道更简单 更优雅的解决方案 请告诉我 这就是
  • 告诉我 SQL Server 全文搜索器疯了,不是我疯了

    我有一些客户具有用户正在搜索的特定地址 123 通用方式 数据库中有 5 行匹配 ResidentialAddress1 123 GENERIC WAY 123 GENERIC WAY 123 GENERIC WAY 123 GENERIC
  • R中IF函数的使用

    我正在短跑ifR 中的函数 但收到以下警告消息 In if runif 50 0 1 lt 0 69 the condition has length gt 1 and only the first element will be used
  • 当将遗传算法与 lme4 一起使用时,glmulti 无限期运行

    我在 R 中使用 glmulti 进行模型平均 我的模型中有大约 10 个变量 使得详尽的筛选不切实际 因此我需要使用遗传算法 GA 调用 method g 我需要包含随机效应 因此我使用 glmulti 作为 lme4 的包装器 此处提供
  • 需要在R中跳过不同数量的行

    我正在使用以下代码来处理我的数据 但最近我意识到使用skip 27 在数据开始之前跳过存储在我的文件中的信息 不是一个好的选择 因为每个文件中要跳过的行数不同我的目标是读取存储在多个文件夹中的各种txt文件 并非所有文件都有相同的列数 列的
  • 使用数据帧的 R 中的 EWMA 波动性

    我正在尝试从一系列股票每日收益中获取 EWMA 波动性 这些收益来自一个名为base retorno diario Data IBOV ABEV3 AEDU3 ALLL3 BBAS3 BBDC3 BBDC4 1 2000 01 04 0 0
  • 如何将旋转的 NetCDF 转换回正常的纬度/经度网格?

    我有一个带有旋转坐标的 NetCDF 文件 我需要将其转换为正常的纬度 经度坐标 经度为 180到180 纬度为 90到90 library ncdf4 nc open dat nf 对于尺寸 它显示 1 5 variables exclu
  • R 改变构面的顺序

    我正在尝试将方面的顺序从 BA SLG 更改为 SLG BA 我发现了与此类似的问题 但我认为我的解决方案可能不起作用 因为我已经在Excel中汇总了数据 因此 我的数据框可能会有所不同 无论如何 我尝试实现这个但无济于事 df2 lt f
  • R - 基于列名称的子集

    我的数据框有超过 120 列 变量 我想根据列名称创建子集 例如 我想创建一个子集 其中列名称包含字符串 心情 这可能吗 我一般用 SubData lt myData grep whatIWant colnames myData 我很清楚
  • 在 Google Colab 上的 R 笔记本中安装 python 库

    我正在尝试在 Google Colab 上的 R 笔记本中安装 python 库 为此我使用 reticulate 包 library reticulate py install pandas 但我得到的结果是这个错误 Error coul
  • 无法编译包“maps”

    当我安装 maps 包时 安装中出现警告 ld warning ignoring file Library Developer CommandLineTools SDKs MacOSX10 14 sdk usr lib libSystem
  • 我如何查看 quantmod 包中所有可用的数据系列?

    如何显示可用的所有报价 数据系列的列表 例如使用雅虎的 getSymbols 我不知道有什么办法 TTR包有一个功能 stockSymbols 下载 NYSE AMEX 和 NASDAQ 的所有当前代码 它试图将它们采用雅虎可接受的格式 但
  • 如何将参数从 Excel/VBA 传递到 Rstudio 中的脚本

    我正在尝试使用 Rstudio 从 VBA 打开 R 脚本 同时将参数传递给 R 脚本 然后我可以使用 commandArgs 访问该脚本 该问题与此处描述的问题非常相似 WScript Shell 用于运行路径中包含空格且来自 VBA 的
  • 获取包含矩阵行内最大值的列名称,该矩阵在数组内包含单独的最大值

    例如给出 dim1 lt c P PO C T dim2 lt c LL RR R Y dim3 lt c Jerry1 Jerry2 Jerry3 Q lt array 1 48 c 4 4 3 dimnames list dim1 di
  • 将表值参数与 SQL Server JDBC 结合使用

    任何人都可以提供一些有关如何将表值参数 TVP 与 SQL Server JDBC 一起使用的指导吗 我使用的是微软提供的6 0版本的SQL Server驱动程序 我已经查看了官方文档 https msdn microsoft com en
  • 将整个包传递给雪簇

    我正在尝试并行化 使用snow parLapply 一些依赖于包 即除snow 调用函数中引用的对象parLapply必须使用显式传递给集群clusterExport 有没有办法将整个包传递到集群 而不必显式命名每个函数 包括用户函数调用的
  • 什么会阻止 Docker 容器中运行的代码连接到单独服务器上的数据库?

    我有一个在 Ubuntu 14 04 上的 Docker 容器中运行的 NET Core 1 1 应用程序 它无法连接到在单独服务器上运行的 SQL Server 数据库 错误是 未处理的异常 System Data SqlClient S
  • R:改变堆积条形图的颜色

    library ggplot2 df2 lt data frame supp rep c VC OJ each 3 dose rep c D0 5 D1 D2 2 len c 6 8 15 33 4 2 10 29 5 head df2 g
  • SQL Server:如果存在会大大减慢查询速度

    正在使用SQL Server 2012 我找到了一些关于查询优化的主题 并将 EXISTS 与 COUNT 进行比较 但我找不到这个确切的问题 我有一个看起来像这样的查询 select from tblAccount as acc join
  • 将 Excel 文件读入 R 并锁定单元格

    我有一个 Excel 电子表格要读入 R 它受密码保护并锁定了单元格 我可以使用 excel link 导入受密码保护的文件 但我不知道如何解锁 取消保护单元格 excel link 给了我这个错误 gt

随机推荐

  • 如何绘制 sklearn 的 GridSearchCV 结果与参数的关系图?

    def show3D searcher grid param 1 grid param 2 name param 1 name param 2 rot 0 scores mean searcher cv results mean test
  • 计算 VARCHAR 字段中字符串出现的次数?

    我有一个这样的表 TITLE DESCRIPTION test1 value blah blah value test2 value test test3 test test test test4 valuevaluevaluevaluev
  • 在 TinyMCE 中设置数据 URI

    TinyMCE 初始化选项 scope tinymceOptions plugins base64img image imagetools paste relative urls false paste data images true p
  • Bea Weblogic 工作文件夹在哪里

    我知道这可能是一个微不足道的问题 但我确实找不到 Oracle BEA weblogic 10 3 中的工作文件夹 与 Apache Tomcat 不同 它显然位于工作目录中 通常位于 WEB INF 下 我已经研究过了爪哇牧场 http
  • 将 lambda 或 api 网关的访问限制为特定 vpc

    是否有可能制作一个API网关 or lambda只能由特定 vpc 访问的功能 我在亚马逊文档中搜索 但没有找到有关此主题的任何内容 先感谢您 不幸的是 您将无法做到这一点 请参阅下面的更新 s3 是通过以下方式提供这种控制访问的服务桶策略
  • 如何强制Apache使用手动预压缩的CSS和JS文件的gz文件?

    我有一个简单的问题 我有网络目录 css里面是文件style css 我已手动压缩此文件并将其另存为style css gz 我想节省 CPU 周期 以免在每次请求时都压缩 CSS 文件 如何配置 Apache 来查找此内容 gz归档并提供
  • Sinatra 测试总是 404'ing

    我有一个非常简单的 Sinatra 应用程序 但在测试时遇到了问题 基本上 当我从浏览器中的测试得知该请求工作正常时 每个请求测试都会返回 404 关于问题可能是什么的任何想法吗 测试助手 rb ENV RACK ENV test lt l
  • Zend 2 数据库事务?

    我们如何在 Zend 2 中使用事务 我在 API 中没有找到任何内容 Zend 1 的几个问题涉及常规 PDO 函数 但我在 Zend 2 中没有看到类似的内容 ZF2 这个部门的文档有点缺乏 开始交易 this gt adapter g
  • Javascript - 记住选择的选项

    我有一个通过 javascript 注入创建的网页 其中一个页面有一个下拉列表 如下所示 html
  • 我们应该在哪里使用@Transactional,Service层在哪里?

    我在 Spring 中有休息风格的控制器 在控制器中我注入了 dao 接口 我从控制器保存数据 换句话说 我有 REST Web 服务 人们向我发送数据 我保留它 Payment rest controller which receives
  • 自动热键窗口出现事件

    我正在使用 WorkRave 休息提醒 并希望在休息窗口出现时关闭屏幕 我知道如何将其关闭 如何在指定窗口 IfWinActive ahk class 出现时创建事件 另外 我可以绑定 符号吗 不起作用 而是其他的 要获得出现窗口的即时通知
  • Laravel 会话存储未根据请求设置

    我正在开发一个小型网站 并且在会话方面遇到问题 当我尝试登录或进行 AJAX 调用时 出现以下 RuntimeException RuntimeException in Request php line 758 Session store
  • 如何避免在信号处理程序中使用 printf?

    Since printf不可重入 在信号处理程序中使用它不应该是安全的 但我见过很多使用的示例代码printf这边走 所以我的问题是 我们什么时候需要避免使用printf在信号处理程序中 是否有推荐的替代品 主要问题是如果信号中断mallo
  • 我应该在 ViewHolder 中哪里取消绑定 ButterKnife 8.x.x?

    我有一个使用 ButterKnife 注释的 RecycleView ViewHolder 类 我的代码也应该在这个 ViewHolder 类中 unbind 吗 public class AView extends RecyclerVie
  • 填写缺失值

    伙计们 我有这张桌子 stime datetime svalue 1 13 2014 8 40 00 AM 5 1 13 2014 8 45 00 AM 6 1 13 2014 8 46 00 AM 5 1 13 2014 8 50 00
  • 在 Android 中,如何更改 onOptionsItemSelected() 内不同 MenuItem 的标题

    单击 Android 中选项菜单中的某个 MenuItem 时 我需要更改同一菜单中不同 MenuItem 的标题 有什么方法可以做到这一点 当单击选项菜单中的 MenuItem 时 将调用 onOptionsItemSelected Me
  • OpenCL 本地内存大小和计算单元数量

    每个 GPU 设备 AMD NVidea 或任何其他 都分为多个计算单元 多处理器 每个计算单元都有固定数量的内核 顶点着色器 流处理器 所以 一个人有 Compute Units x VertexShaders compute unit
  • 如何在java中使用math.pi

    我在转换此公式时遇到问题V 4 3 r 3 我用了Math PI and Math pow 但我收到此错误 预期的 此外 直径变量不起作用 那里有错误吗 import java util Scanner import javax swing
  • 有没有办法将 SQL 数据库链接到 LDAP 服务器

    我们有一个 SQL 联系人数据库 它链接到我们所有的项目信息 其中包含很多附加功能 最近有人建议我们在最终用户的电子邮件客户端中提供此信息的联系人部分 因此我们正在考虑设置 LDAP 服务器 是否有任何工具可以让我们将数据库中的信息 可能是
  • 如何使用 R 和 dplyr 连接不同 SQL 数据库中的表?

    我在用着dplyr 0 7 0 dbplyr 1 0 0 DBI 0 6 1 and odbc 1 0 1 9000 我想做如下的事情 db1 lt DBI dbConnect odbc odbc Driver SQL Server Ser