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中的直通查询的主要内容,如果未能解决你的问题,请参考以下文章