WRDS是一个领先的研究数据提供商,为学术界和其他研究人员在商业和相关领域。WRDS提供了一个PostgreSQL数据库,但这是一个只读数据库。
对于某些任务来说,无法将数据写入数据库是一个很大的限制。例如,如果我想使用每日股票收益率运行一个事件研究,我将需要将我的(相对较小的)本地数据集events
与crsp.dsf
合并,这大约是18GB的数据。
一个选择是用crsp.dsf
的副本维护我自己的数据库,并将events
写入该数据库并在那里合并。但我正在寻找一个允许我使用WRDS数据库的选择。不幸的是,没有办法使用copy_to
或dbWriteTable
,因为WRDS数据库是只读的。
1条答案
按热度按时间jaxagkaj1#
一个比下面的答案更新的答案是使用
dbplyr
包中的copy_inline
函数,该函数是在有关此主题的issue文件之后添加的。一种选择是使用类似于以下函数的函数,该函数使用SQL * 将本地数据框转换为远程数据框,即使在使用只读连接 * 时也是如此。
这里是一个使用中的函数的例子。函数已经在PostgreSQL和SQL Server上测试过了,但是在SQLite上不起作用(因为缺少
VALUES
关键字)。我相信它应该在MySQL或Oracle上起作用,因为它们都有VALUES
关键字。由reprex package(v1.0.0)于2021年4月1日创建