R中的直通查询

Posted

技术标签:

【中文标题】R中的直通查询【英文标题】:Passthrough query in R 【发布时间】:2014-11-21 22:28:27 【问题描述】:

在 SAS 中我习惯了 PROC SQL,我可以使用它来查询数据库并将数据返回到 SAS,或者在数据库中执行 SQL 代码。例如,在 SAS 中,我可以使用 PROC SQL 运行直通查询,以从数据库上的另一个表在我的数据库上创建一个新表。

proc sql;
connect to netezza ( SERVER=X DATABASE=Z  AUTHDOMAIN="Y");
execute
(
create table B as
select * from A

)
by netezza
;
quit;

在 R 中,我可以使用 RODBC 和如下代码连接和查询数据库:

connect1 <- odbcConnect("NZ",believeNRows=FALSE) 

query1 <- "SELECT * FROM A"

df_imp <- sqlQuery(connect1, query1)

但是我该如何去做类似于上面的 SAS 代码的事情呢?

【问题讨论】:

也许你会在 dplyr 包中找到你的答案。看看:cran.r-project.org/web/packages/dplyr/vignettes/databases.html 【参考方案1】:

您可以使用相同的sqlQuery

sqlQuery(connect1, "CREATE TABLE b as SELECT * FROM a")

【讨论】:

谢谢。我试过了,但失败了。出于某种原因,我一定是做错了,因为当我今天早上重新尝试时,它工作得很好。【参考方案2】:

IBM 提供了多个接口以将 R 与 Netezza 结合使用,包括在设备中运行 R。

这些是在 GPL 下免费提供的。最初它只能通过 Revolution 付费使用,但一年多前发生了变化。

您必须向 IBM Developerworks (www.ibm.com/developerworks) 注册。

注册后即可下载软件和安装说明。

见http://ibm.co/XOC1q3

在这个 wiki 上(在“如何”部分下),有几个关于将 R 与 Netezza 一起使用的文档和实验室。

【讨论】:

以上是关于R中的直通查询的主要内容,如果未能解决你的问题,请参考以下文章

将直通查询中的记录附加到本地表

Access 中的 T-SQL 直通查询是不是可以包含本地 Access 表?

对 Oracle DB 的直通查询中的 MS 访问表达式

VBA DAO 直通查询意外行为

访问直通外部应用

到 SQL Server 的 MS Access 通用直通查询