将函数中SQL的结果输出到R数据框

时间:2019-04-23 22:05:56

标签: sql r dataframe

我有一个正常工作的R函数,该函数可以查询服务器数据库并按预期返回结果,但是它只是将结果打印到控制台,并且我想将结果存储为数据框对象。

我尝试了下面的代码

params <- function(
  BEG = '201801',
  END = '201802') {


  con <- dbConnect(odbc::odbc(), dsn = DSN)

   data <- odbc::dbSendQuery(con,  " SELECT A BUNCH OF DATA 
                      FROM some_tables where everything is what I want")

  odbc::dbBind(data, list(BEG, END))
  odbc::dbFetch(data) -> test
  er_vists <- as.data.frame(return(test))
}

params()

一切正常,我只是想不出如何将结果保存到数据框。这是否需要在功能之外进行?任何帮助或可能解决方案的链接都将不胜感激。

1 个答案:

答案 0 :(得分:3)

据我所知,您的功能正常运行。

只需修改函数的最后一行,即可将输出保存到这样的变量中:

params <- function(BEG = '201801', END = '201802') {

  con <- dbConnect(odbc::odbc(), dsn = DSN)

  data <- odbc::dbSendQuery(con,  " SELECT A BUNCH OF DATA 
                            FROM some_tables where everything is what I want")

  odbc::dbBind(data, list(BEG, END))
  odbc::dbFetch(data) -> test
  return(as.data.frame(test))
}

mydata <- params()
mydata


mydata <- params()