将数据框(或其他 R 对象)连接到只读 Postgresql 数据库中的表?

2024-02-24

我对 Postgres 数据库具有只读访问权限。我无法写入数据库。

问:有没有办法构建和运行 SQL 查询,将数据框(或其他 R 对象)连接到只读 Postgres 数据库中的表?

这是为了从 WRDS 访问数据,https://wrds-www.wharton.upenn.edu/ https://wrds-www.wharton.upenn.edu/

这是伪代码的尝试

#establish a connection to a database
con <- dbConnect( Postgres(), 
          host = 'host.org',
          port = 1234,
          dbname = 'db_name',
          sslmode = 'require',
          user = 'username', password = 'password')

#create an R dataframe (or other object)
df <- data.frame( customer_id = c('a123', 'a-345', 'b0')  )


#write a sql query we will run
sql_query <- "
SELECT t.customer_id, t.* FROM df t
   LEFT JOIN table_name df
      on t.customer_id = df.customer_id
"

my_query_results <- dbSendQuery(con, sql_query)
temp <- dbFetch(res, n = 1)
dbClearResult(res)
my_query_results

注意和编辑:出于示例目的,我提供的示例查询故意超级简单。

在我的实际查询中,可能有 3 个或更多列我想要加入,以及数百万行我想要加入。


Use the copy_inline https://dbplyr.tidyverse.org/reference/copy_inline.html函数从dbplyr包,这是在以下添加的issue https://github.com/tidyverse/dbplyr/issues/628就此主题提交。另请参阅问题here https://stackoverflow.com/questions/66910165/how-do-i-get-local-data-into-a-read-only-database-using-dplyr.

找到了它的使用示例here https://iangow.github.io/far_book/beaver68.html还有下面。 在运行下面的代码之前,请在 R 控制台中运行如下代码:

Sys.setenv(PGHOST = "wrds-pgdata.wharton.upenn.edu",
           PGPORT = 9737L,
           PGDATABASE = "wrds",
           PGUSER = "YOUR_WRDS_ID",
           PGPASSWORD = "YOUR_WRDS_PASSWORD")

然后(假设你有dplyr, dbplyr, and RPostgres安装的软件包)您应该能够复制粘贴以下代码来检查它是否适合您。还可以找到更多例子here https://iangow.github.io/far_book/intro.html.

library(dplyr, warn.conflicts = FALSE)
library(DBI)
library(dbplyr, warn.conflicts = FALSE)

pg <- dbConnect(RPostgres::Postgres(), sslmode='require')

events <- tibble(permno = 14593L,
                 event_desc = c("WWDC 2005 ", "Apple Special Event", 
                                "WWDC 2006"),
                 date = as.Date(c("2005-06-06", "2006-02-28", 
                                  "2006-02-28")))
events_pg <- copy_inline(pg, events)

dsf <- tbl(pg, sql("SELECT * FROM crsp.dsf"))

results <-
  dsf %>%
  inner_join(events_pg, join_by(permno, date)) %>%
  select(permno, date, event_desc, ret, prc) %>%
  collect()

results
#> # A tibble: 3 × 5
#>   permno date       event_desc                 ret   prc
#>    <dbl> <date>     <chr>                    <dbl> <dbl>
#> 1  14593 2005-06-06 "WWDC 2005 "          -0.00837  37.9
#> 2  14593 2006-02-28 "Apple Special Event" -0.0352   68.5
#> 3  14593 2006-02-28 "WWDC 2006"           -0.0352   68.5

Created on 2023-04-23 with reprex v2.0.2 https://reprex.tidyverse.org

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

将数据框(或其他 R 对象)连接到只读 Postgresql 数据库中的表? 的相关文章

  • R - 根据另一个数据框查找每组的重叠日期

    我有一个数据框 其中包含多个雨量计的降雨测量值 如下例所示 gt rnfl ID date value 1 250 2000 03 01 5 37 2 250 2000 03 02 0 00 3 250 2000 03 03 2 94 4
  • R比例置信区间因子

    我正在尝试总结家庭调查的数据 因此我的大部分数据都是分类 因子 数据 我想用对某些问题的回答频率图来总结它 例如 回答某些问题的家庭百分比的条形图 误差线显示置信区间 我发现了这个很棒的教程 我认为它是我祈祷的答案 http www coo
  • ggplot 中跨组的连续线

    我有一个数据时间序列 其中观察了一些数据 模拟了一些数据 我想生成整个数据系列随时间变化的图 其中颜色表示数据源 但是 我只能弄清楚如何使 ggplot 中的 geom line 连接同一组中的点 这是一个例子来说明 Create samp
  • 将文本添加到 ggplot 中的轴标签

    我从下表中绘制了一个图表 BoatPhs fit se lower upper 1 Before 3 685875 0 3287521 3 038621 4 333130 2 After0 20NTA 3 317189 0 6254079
  • 如何获取 JDBC 中 UPDATE 查询影响的所有行?

    我有一项任务需要使用更新记录PreparedStatement 一旦记录被更新 我们知道更新查询返回计数 即受影响的行数 但是 我想要的不是计数 而是受更新查询影响的行作为响应 或者至少是受影响的行的 id 值列表 这是我的更新查询 UPD
  • 仅在具有重复块名称的另一个 Rmarkdown 文档中运行一个 Rmarkdown 文档中的代码

    我正在 Rmarkdown 中编写一系列相互补充的报告 我想将上一份报告的结果纳入我目前正在编写的报告中 我看到其他建议使用的问题purl从 Rmarkdown 文档中提取 R 代码然后运行它 所以我尝试了以下操作 r read previ
  • mclapply 用户时间大于已用时间

    我正在尝试使用mclapply的功能parallel封装在R 该函数通过计算对数似然距离将值分配给序列矩阵 这是一个 CPU 密集型操作 所结果的system time价值观令人困惑 gt system time mclapply work
  • 如何在 R 地图库中绘制正确的颜色

    我正在尝试使用 R 地图库为特定国家绘制特定颜色 我可以填写颜色 但它们与各自的国家 地区没有正确关联 我想知道是否有人能知道为什么 我的数据框是 filld 有 3 列 第一列是国家名称 第二列只是一些数字数据 第三列是颜色 countr
  • R:使用管道将单个参数传递到函数中的多个位置

    我试图专门使用管道来重写以下代码 使用babynames包中的babynames数据 library babynames library dplyr myDF lt babynames gt group by year gt summari
  • 在 R 中修改传单弹出窗口

    我想修改 R 中传单弹出窗口的外观 帮助文件指出 in the popupOptions 函数需要 传递给底层 Javascript 对象构造函数的额外选项 In 这个例子 https rstudio github io leaflet p
  • PostgreSQL & regexp_split_to_array + 取消嵌套

    我有这样的绳子 测试1 纽约 X 测试 2 芝加哥 Y 测试 3 宾夕法尼亚州哈里斯堡 Z 我需要的结果是 Column1 Column 2 Column3 Test 1 new york X Test 2 chicago Y Test 3
  • R 中带有边缘箱线图的直方图

    如何使直方图中的 X 轴与边缘箱线图匹配 data lt rnorm 1000 nf lt layout mat matrix c 1 2 2 1 byrow TRUE height c 1 3 layout show nf par mar
  • 分割单个 SpatialPolygons 对象的多边形部分

    在 R 中 我有一个SpatialPolygons包含数百个多边形的对象 即多个多边形 我想分割这个SpatialPolygons对象放入列表中Polygons 即孔应保持连接到父多边形 知道如何做到这一点吗 EDITED 使用以下提供的示
  • 使用 R 中的 tidyverse 重新调整因子和重新排序因子

    我想使用这些功能重新调平 and 重新排序 在我的数据框中 我了解重新调整级别的工作原理 但我不明白为什么我在 data frame 中看不到级别的变化 例如 假设我有鸢尾花数据集 library tidyverse head iris g
  • 如何使用r中的dplyr在特定位置插入空白行

    我想在数据框中的特定位置插入空白行 我的数据框是这样的 dat lt data frame group c rep A 1 rep B 4 rep C 2 rep D 2 group 1 A 2 B 3 B 4 B 5 B 6 C 7 C
  • 通过 RCpp 返回 NA

    新手 RCpp 问题在这里 How can I make a NumericVector returnNA到R 例如 假设我有一个 RCpp 代码 它分配NA到向量的第一个元素 RCpp export NumericVector myFun
  • R:如何更改ggvis闪亮应用程序中特定范围的绘图背景颜色

    I have a simple shiny app like below and you can run it The plots are created by ggvis and user can choose student name
  • 如何根据查找表匹配多列

    我有以下两个数据框 lookup lt data frame id c A B C price c 1 2 3 results lt data frame price 1 c 2 2 1 price 2 c 3 1 1 我现在想要浏览所有列
  • 绘制带有颜色渐变的geom_segment线? (或者还有另一种方法来强调开始与结束吗?)

    我的数据框中有大量行 100 000 的两组纬度和经度变量 我正在尝试绘制一个连接这两组坐标的图 即 从纬度1 经度1 to 纬度2 经度2 使用 geom segment 使用非常低的 alpha 使线条透明 因为线条太多 我想强调这些线
  • 将 CSV 复制到 Amazon RDS 托管的 Postgresql 数据库

    我有一个使用 Amazon 的 RDS 服务托管的数据库 我正在尝试编写一个 Web 服务来更新所述数据库 我遇到的问题是它不允许我使用 COPY 命令 因为我收到此错误 错误 必须是超级用户才能复制到文件或从文件复制 我正在使用我为数据库

随机推荐

  • GAE Python 开发服务器升级到 2.7 后间歇性崩溃

    我最近将我的 GAE Python 应用程序升级到了 Python 2 7 从那时起 我定期在开发服务器上收到以下错误 并且开发服务器提供空白页面 Traceback most recent call last File Applicati
  • 用模式替换 R 中的字符串并替换两个向量

    假设我有两个向量 如下所示 a lt c this is test b lt c that was boy 我还有一个字符串变量 如下所示 string lt this is a story about a test 我想替换字符串中的值
  • 字形和文本之间的间距?

    我正在尝试添加字形图标作为电子邮件地址链接的一部分 图标显示 但图标和电子邮件地址文本之间没有间距 我希望超链接包含图标和文本 包括空格 实现这一目标的最佳方法是什么 a href title Some Email span class g
  • terraform 和 aurora postgresql 的存储类型错误

    我目前正在借助 Terraform 在 AWS 中部署 Aurora postgres 实例 这里是我的报关表 resource aws db instance postgreDatabase name validName storage
  • 以编程方式将类序列化为 xsd

    有没有办法以编程方式从 C NET 类创建 XSD 我想将对象序列化为带有类型信息的 xsd 或 xml 是的 看着XsdDataContractExporter MSDN 有一个完整的例子在这里 http msdn microsoft c
  • SocketOutputStream的线程安全

    我知道 java 套接字的线程安全性已经在 stackoverflow 上的几个线程中进行了讨论 但我一直无法找到这个问题的明确答案 实际上 让多个线程同时写入同一个线程是否安全SocketOutputStream 或者是否存在从一个线程发
  • NavigationLink 内的 SwiftUI 按钮

    我有一个列表项的视图 它显示有关嵌入到 navigationLink 中的任务的一些基本信息 我想使用 navigationLink 中的按钮进行切换task isComplete没有进行任何导航 到目前为止 这是我的代码 var body
  • django-admin.py:找不到命令

    我在 usr local bin 中有 django admin py 并且我已经尝试了网络上提供的所有帮助来创建符号链接 但它仍然显示 django admin py command not find 我正在尝试在 django 中启动我
  • 如何获取从Powershell启动的Explorer的进程ID

    我从Powershell启动 Explorer exe 想要获取资源管理器窗口的进程ID 这样我就不会在其他资源管理器窗口上误操作 代码 启动进程 Explorer exe PassThru 结果 我可以看到进程ID 但它与UISpy或任务
  • 在 .NET 4.5.2 控制台应用程序中使用 .NET Core 库

    我有两个项目 一个项目基于 NET Core 构建 另一个项目基于普通 NET Framework 4 5 2 构建 我想知道如何在 NET 控制台应用程序中使用 NET Core cass 库 这是我的project json versi
  • 在 Chrome 上使用 Jquery 检测 Shift + 单击

    我正在尝试使用 javascript 检测 Shift 点击 但由于某种原因它只适用于 IE click function e if e shiftKey Rain 这是在 IE 中适用的代码 我如何在 Chrome 上检测到它 我不认为有
  • 如何在初始化后设置jqueryui datepicker minDate?

    我有两个日期选择器 jquery ui 我想将第二个输入 minDate 属性 限制为第一个输入中选择的值 我该怎么做 我写了下面的代码 没有成功 picker1 button click function var minDate pick
  • Spark Apache 中的 Worker 无法连接到 master

    我正在使用独立集群管理器部署 Spark Apache 应用程序 我的架构使用 2 台 Windows 机器 一组作为主机 另一组作为从机 工作程序 Master on which I run bin gt spark class org
  • Java 中 DirectX 程序的全屏捕获(Javacv?)

    对于Windows 我知道可以捕获在 C 语言下运行的 DirectX 程序的屏幕 但是您知道 Java 的一些示例代码吗 我实际上面临着同样的问题使用java在全屏应用程序中截取屏幕截图 https stackoverflow com q
  • 突出显示工作表中的第二个实例重复项

    尝试在谷歌表格上标记重复项 但我看到当我使用时 第一个实例被突出显示 COUNTIF A1 A100 A1 gt 1 我尝试同时使用 IF 和 COUNTIF 以便突出显示第二个实例 IF COUNTIF A1 A97 A1 gt 1 Du
  • nginx keepalive 和 dns 解析器

    我在 AWS 中有一个 nginx 实例 它具有上游应用程序层 对nginx有两个要求 活着 使用解析器动态解析上游 我能够使它们中的任何一个工作 这是使 keepalive 工作的配置 upstream backend server ap
  • localStorage 无法在 google chrome 上运行

    我正在使用浏览器localStorage存储一个值 但是在使用谷歌浏览器时 当我们使用以下命令刷新页面时window location reload localStorage value被冲了 例如 localStorage value1
  • MongoDB 副本集成员状态为“OTHER”

    三个成员 主要和次要 第三个成员是 其他 我找不到有关该状态的任何信息 不知道该怎么做 我已经重新启动了实例 但它总是出现相同的情况 找不到有关该状态的文档 我是复制集的新手 任何帮助将不胜感激 配置设置不正确 您可以使用以下命令来初始化
  • 在 Python 中压缩并使用解压缩 C# 解压缩的最简单方法(反之亦然)

    我有一个带有基于 Mono 的 C 客户端和 Python 服务器的程序 它们通过 TCP IP 套接字进行通信 这些消息主要使用二进制格式 但每条消息的最大部分通常是嵌入的 UTF 8 字符串 英文 每条消息通常都很短 小于 100 字节
  • 将数据框(或其他 R 对象)连接到只读 Postgresql 数据库中的表?

    我对 Postgres 数据库具有只读访问权限 我无法写入数据库 问 有没有办法构建和运行 SQL 查询 将数据框 或其他 R 对象 连接到只读 Postgres 数据库中的表 这是为了从 WRDS 访问数据 https wrds www