導入Access表,這可能是簡單的東西,但我不能想出一個可行的解決方案。[R用戶定義函數通過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數據庫文件,便接踵而來:
importa.sql <- function(someFile)
{
library(RODBC)
con <- odbcConnect("someTable")
qry<-paste("(","SELECT * FROM ",someFile,")")
someFile <- sqlQuery(con,qry,stringsAsFactors=FALSE)
}
我測試過的每行和代碼工作如預期。問題是:當我運行該功能時,它似乎完美工作,但沒有文件導入!
有誰可以幫幫我嗎?
一個明確的'return'是可選的;你可以在不分配輸出的情況下調用'sqlQuery'或者將最後一行改爲'df'。根據你的要求,這是函數最終或非錯誤返回的首選樣式。查看:http://adv-r.had.co.nz/Functions.html#return-values。它是編寫函數的一個很好的指南。 – blongworth
感謝@djhurio的答案。我已經使用{return}對其進行了測試,但我不想讓它在控制檯上顯示結果,只是爲了生成data.frame。我找到了一個解決方案,我只是寫在下面。 – Marcelo