簡體   English   中英

R用戶定義的函數,用於通過ODBC導入ACCESS表

[英]R user-defined function to import ACCESS table via ODBC

這可能很簡單,但是我找不到可行的解決方案。

我的設置是:

    R version 3.3.1 (2016-06-21)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

locale:
[1] LC_COLLATE=Portuguese_Brazil.1252  LC_CTYPE=Portuguese_Brazil.1252    LC_MONETARY=Portuguese_Brazil.1252 LC_NUMERIC=C                      
[5] LC_TIME=Portuguese_Brazil.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] tools_3.3.1  rpart_4.1-10

我正在建立一個通過ODBC從ACCESS DB導入文件的功能,如下所示:

importa.sql <- function(someFile)
  {
    library(RODBC) 
    con <- odbcConnect("someTable") 
    qry<-paste("(","SELECT * FROM ",someFile,")")
    someFile <- sqlQuery(con,qry,stringsAsFactors=FALSE) 
  }

我已經測試了每一行,並且代碼按預期工作。 問題是:當我運行該函數時,它似乎運行良好,但是沒有導入文件!!!

有人可以幫助我嗎?

您的函數返回NULL因為函數ir分配給本地對象someFile的最后一條語句。 最好關閉連接。 試試這個功能。

importa.sql <- function(someFile) {
  library(RODBC) 
  con <- odbcConnect("someTable") 
  qry <- paste("(", "SELECT * FROM ", someFile, ")")
  df <- sqlQuery(con, qry, stringsAsFactors = FALSE)
  close(con)
  return(df)
}

如果有人有同樣的疑問,解決方案確實非常簡單。

只需這樣調用函數:

file <- importa.sql(someFile)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM