如何给 dplyr 一个 SQL 查询并让它返回一个远程 tbl 对象?

2023-12-08

假设我有一个使用 dbplyr 打开的远程 tbl,并且我想对其使用 SQL 查询(可能是因为没有 dbplyr 翻译来实现我想要做的事情),我该如何给它返回一个远程 tbl 对象?

The DBI::dbGetQuery()函数允许您向 db 发出查询,但它返回内存上的数据帧,而不是远程 tbl 对象。

例如,假设您已经有一个连接con打开数据库,您可以创建一个像这样的表:

library(tidyverse)

x_df <- expand.grid(A = c('a','b','c'), B = c('d','e','f', 'g','h')) %>% 
  mutate(C = round(rnorm(15), 2))

DBI::dbWriteTable(conn = con,
                  name = "x_tbl",
                  value = x_df,
                  overwrite = TRUE)

x_tbl = tbl(con, 'x_tbl')

sql_query <- build_sql('SELECT a, b, c, avg(c) OVER (PARTITION BY a) AS mean_c FROM x_tbl')

y_df <- DBI::dbGetQuery(con, sql_query) # This returns a data frame on memory

y_tbl <- x_tbl %>% 
  group_by(a) %>% 
  mutate(mean_c = mean(c))

show_query(y_tbl) # This is a remote tbl object

在这种情况下,我可以使用y_tbl。但有些情况下,该函数尚未在 dbplyr 上进行翻译(例如,分位数不起作用),我需要使用 SQL 代码。但我不想收集结果,我希望它创建一个远程 tbl 对象。有没有办法可以给出 SQL 查询(比如dbGetQuery())但是它返回一个远程表吗?

谢谢


好吧,尝试一下它的工作原理,我想我找到了一种方法。您可以在 mutate 函数内给出 sql 查询:

y_tbl <- x_tbl %>% 
  group_by(a) %>% 
  mutate(mean_c = sql("avg(c) OVER (PARTITION BY a)"))

show_query(y_tbl) # This is a remote tbl object

这将使您能够给出变量的 SQL 定义,而无需计算表。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何给 dplyr 一个 SQL 查询并让它返回一个远程 tbl 对象? 的相关文章

  • 计算2个日期之间每个日期的记录数

    我必须创建一个查询来返回多轴图表的结果 我需要计算为 2 个日期之间的每个日期创建的 ID 数量 我试过这个 DECLARE StartDate datetime2 7 11 1 2020 EndDate datetime2 7 2 22
  • 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
  • 针对约 225 万行的单表选择查询的优化技术?

    我有一个在 InnoDB 引擎上运行的 MySQL 表 名为squares大约有 2 250 000 行 表结构如下 squares square id int 7 unsigned NOT NULL ref coord lat doubl
  • 使用用户定义函数 MySql 时出错

    您好 请帮我解决这个问题 提前致谢 我在数据库中定义了这些函数 CREATE FUNCTION levenshtein s1 VARCHAR 255 s2 VARCHAR 255 RETURNS INT DETERMINISTIC BEGI
  • ggplot:如何限制条形图中的输出,以便仅显示最频繁出现的情况?

    我几个小时以来一直在寻找这个简单的东西 但没有结果 我有一个数据框 其中一列为变量 国家 地区 我想要两件事以下 绘制最常见的国家 地区 最常见的位于顶部 找到部分解决方案EDIT找到完整的解决方案 gt gt 重点问题是根据频率限制条形图
  • 将维基百科中的表格加载到 R 中

    我正在尝试从以下 URL 将最高法院法官表加载到 R 中 https en wikipedia org wiki List of Justices of the Supreme Court of the United States http
  • R 中 SVG 图形的最佳设备? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想从 R 导出 SVG 图形 似乎有两种选择 RSvgDevice 和 Cairo 有人可以对这些包发表评论吗 是默认的还是明显比另一个
  • 如何对 SQL 进行多次查询

    我正在尝试创建一个表 并在 PHP 脚本的帮助下在数据库中插入一些值 虽然只插入 1 行 但效果很好 当我尝试输入更多行数时 出现错误 我需要为每个查询编写完整的插入语句 因为我正在使用在线 Excel 到 SQL 查询转换器
  • 随着时间的推移累积(不重叠)——技术?

    我正在尝试找到一种更好的方法来制作水晶报告 其他人的 按组添加不重叠的时间 这显然是一个古老的问题 有没有一种技术可以得到 调整每条记录的 开始 结束 时间 以消除共同 重叠时间 亚组内 使用直接 SQL 尽管我发现我可以执行 CTE 假设
  • 如何使用 MySQL 选择有特定值的 2 个连续行?

    我正在构建一个系统 该系统应该显示学生何时连续缺席两天 例如 此表包含缺勤情况 day id missed 2016 10 6 1 true 2016 10 6 2 true 2016 10 6 3 false 2016 10 7 1 tr
  • 在 R 上安装 TDA 包时出错:目标“diag.o”的配方失败

    使用 Ubuntu 16 04 和 R 3 4 1 安装 R 包 TDA 时收到错误消息 它似乎与制作 CGAL diag cpp 和 或 diag o 最后的完整错误打印输出 有关 我仔细看了这个 在 R 上安装 TDA 包时出错 htt
  • HTTR GET 新错误:SSL 证书问题:证书已过期

    我已经运行这段代码几个月了 没有出现任何问题 今天我突然开始在我的两台 AWS 服务器上收到以下错误消息 错误 curl curl fetch memory url handle handle SSL证书问题 证书已过期 当尝试运行以下代码
  • 使用 DISTINCT 进行查询需要很长时间

    我正在使用 Microsoft Access 2003 我的项目中的一个表单需要很长时间才能向用户显示 这是适用的查询 SELECT DISTINCT tb KonzeptDaten DFCC tb KonzeptDaten OBD Cod
  • 在闪亮的数据表中为每个单元格显示工具提示或弹出窗口?

    有没有什么方法可以为 r闪亮数据表中的每个单元格获取工具提示 有很多方法可以获取悬停行或列 但我找不到一种方法来获取行和列索引并为每个单元格显示不同的悬停工具提示 任何人都可以修改以下代码吗 library shiny library DT
  • Oracle SQL PLS-00049:错误的绑定变量

    我收到此错误 这似乎是列拼写问题 然而 我 99 确信我拼写的所有内容都是正确的 但我看不出有任何理由会出现我所犯的错误 这是来源 CREATE OR REPLACE TRIGGER update qoh trigger AFTER INS
  • ggplot2:带有 geom_line 的 x 轴因子不起作用

    我想要一个线图 其中value绘制为函数expt每级一行var 这是我的数据 lines lt expt var value 1 none p 0 183065327746799 2 none p 0 254234138384241 3 n
  • 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
  • 更改绘图区域背景颜色

    我想使用我们公司的颜色在 R 中制作一个图表 这意味着所有图表的背景应为浅蓝色 但绘图区域应为白色 我正在寻找答案 发现绘制一个矩形就可以完成这项工作 几乎 然而 绘图区域现在是白色的 并且图形不再可见 这可能吗 getSymbols SP
  • 斯皮尔曼相关性和联系

    我正在一小组配对排名上计算斯皮尔曼的 rho 斯皮尔曼因处理领带不当而闻名 例如 取2组8个排名 即使两组中有6个是平局 相关性仍然很高 gt cor test c 1 2 3 4 5 6 7 8 c 0 0 0 0 0 0 7 8 met

随机推荐

  • 如何从 C++ 将字符串矩阵传递到 Cuda 内核

    Problem 我有一个 C 矩阵 里面充满了字符串 我想将它传递给 cuda 内核函数 我知道 CUDA 无法处理字符串 因此经过一些研究 我尝试了下面列出的一些解决方案 尝试 在 C 中定义一个指针数组 其中每个单元格包含一个指针字符
  • JavaScript:将 ex 转换为 px

    所以我正在阅读 elem style width 并得到类似 3 1415926ex 的内容 我想将其转换为 px JavaScript 是否有内置函数来执行此操作 我更喜欢砍掉字符串的最后 2 个字母 将其读取为数字 然后将其乘以一个魔法
  • Qt3d:应用 Qt3DRender::QLayerFilter 时显示的工件

    我正在尝试使用图层过滤 如图所示这个答案 为此 我编写了一个简单的测试 见下文 这是question 在红色球体的某个位置 会出现伪影 看起来像是另一个摄像机在坐标 0 0 0 0 0 0 中的显示 See screen 在我的示例中 可以
  • 防止文本框在更新时返回到文本框的开头

    有没有办法让文本框在更新时冻结其位置 我每 1 秒更新一次 TKinter 中的文本框 但显示一些不断变化的信息 但是 我不希望文本框在更新时返回到文本框的开头 每次更新后 我都被迫快速向下滚动文本框以查看某些数据的更改 Defined a
  • Tailwind的config中,添加属性到主题VS theme.extend有什么区别?

    Tailwind 的配置文档多次使用了extend属性 但没有阐明在其上进行自定义的区别theme财产VStheme extend财产 module exports content src html js theme colors blue
  • 使用不同参数 testng 顺序执行多个测试

    我试图使用数据提供程序按顺序运行具有不同参数的多个测试 基本上场景是假设有 5 个测试完成测试流程 并且所有测试用例都应按顺序运行假设在数据提供程序中返回的第一个参数是 air 然后所有 5 个测试应该使用参数 air 运行 然后是第二个参
  • 在OpenGL中绘制多个三角形

    我刚刚开始使用 OpenGL 并且已经制作了自己的用 C 绘制三角形的 OOP 版本 我正在使用 glfw 和 glew 如果这很重要的话 我不明白为什么我不能画超过 1 个三角形 这是主要功能 int main Graphics Wind
  • 打开 Bootstrap Modal 以在 Ruby on Rails 中编辑记录

    我有一个 用户 模型 我在用户索引页面上有一个用户列表 每个用户旁边都有一个编辑按钮 我想单击每个用户的编辑按钮 这将打开引导模式 在引导模式上 我想显示可以编辑的用户记录 编辑表单将来自 form html erb 部分 它将用于新的和编
  • Facebook Messenger 的自定义 URI 方案

    鉴于近期 鼓励 由 Facebook 迁移到单独的即时通讯应用程序 并作为 信息非常丰富 回答有关 Facebook 应用程序支持的 URL URI 方案的问题 我一直想知道有关 Facebook Messenger 应用程序的信息是否自定
  • 有没有办法将寄存器文件视为 ARMv8 中的数组(标量或 Neon)?

    假设我有一个短数组v说 8int64 t 我有一个算法需要访问该数组的不同元素 这些元素不是编译时常量 例如就像是v i j 2 其中i and j是不受任何类型的常量传播影响的变量 通常 我会保留内存中的数组 计算数组索引 从内存中的该位
  • 快线申报

    我有 2 条路线 例如 router get project id req res gt console log 1 router get project active req res gt console log 2 每当我调用 proj
  • 使用 xpath 选择第一个结果的子项

    我有一段 XML 其中相同的信息可以显示为不同节点的子节点 例如
  • 设置工具栏菜单项标题的样式

    我正在尝试实现菜单项设计 如下面的 YouTube 应用程序屏幕所示 我感兴趣的菜单项是操作菜单项 在这种情况下 G Currently my application Looks like the image below 我的样式和背景xm
  • Google 文档和 Google 云端硬盘中的 Google Apps MIME 类型是什么?

    以下每个文件扩展名的 MIME 类型是什么 gdoc gslide gsheet gdraw 谷歌文档 application vnd google apps document application vnd google apps kix
  • 在 JavaScript 类函数中使用 setTimeout()

    是否可以在 JavaScript 对象中使用 setTimeout 目前动画方法调用运行一次 似乎 setTimeout 没有完成其工作 我已经设法让它工作 但是采用了一种非常黑客的方法 在使用 setTimeout 的类之 外有一个函数
  • Javascript 相当于 Java SHA1PRNG

    我有一个使用 AES 128位 ECB PKCS5Padding java8 linux window 的Java应用程序 代码非常简单 KeyGenerator keygen KeyGenerator getInstance AES Se
  • 尝试添加深层链接我的 Android 应用程序

    我的应用程序工作正常 但每当我在清单中添加深层链接代码时 我的应用程序午餐图标就会消失 这是我的清单文件
  • 禁用/删除 Kendo Grid 默认组列上的关闭图标

    我正在使用 Kendo UI Grid 作为我的解决方案之一 我有一个任务 要求 我应该能够为网格提供默认分组 并且用户不应该能够从 UI 中删除此分组 有一种方法可以实现此目的 如 jsFiddle 示例所示 http jsfiddle
  • 美国网站的信用卡收单和贝宝解决方案

    我计划建立一个仅在美国接受收费的网站 是否有任何信用卡收单软件可以轻松地由 C ASP NET 网站实现 有人可以推荐一些吗 在数据库中保存 加密信用卡数据有什么规则吗 任何帮助都会很棒 正如 Albireo 所指出的 您不想将信用卡存储在
  • 如何给 dplyr 一个 SQL 查询并让它返回一个远程 tbl 对象?

    假设我有一个使用 dbplyr 打开的远程 tbl 并且我想对其使用 SQL 查询 可能是因为没有 dbplyr 翻译来实现我想要做的事情 我该如何给它返回一个远程 tbl 对象 The DBI dbGetQuery 函数允许您向 db 发