2015-09-07 49 views
0

調試R腳本我遇到了一個奇怪的錯誤:「調試(fun,text,condition)中的錯誤:參數必須是閉包」。 PC功能:Win7/64位,Oracle客戶端12(包括32位和64位),R(64位)無法調試R中的函數

早期腳本調試良好,沒有錯誤。我在Inet中尋找線索,但沒有找到明確的解釋錯誤是什麼以及如何刪除它。 以純腳本運行腳本而不是函數不會產生錯誤。

我將是你的想法非常感謝

源腳本(連接到Oracle數據庫,並執行一個簡單的查詢)如下(conects到Oracle數據庫執行查詢:

download1<-function(){ 
if (require("dplyr")){ 
#install.packages("dplyr") 
} 
if (require("RODBC")){ 
#install.packages("RODBC") 
} 

library(RODBC) 
library(dplyr) 

# to establish connection with DB or schema 
con <- odbcConnect("DB", uid="ANALYTICS", pwd="122334fgcx", rows_at_time = 500,believeNRows=FALSE) 

# Check that connection is working (Optional) 
odbcGetInfo(con) 

# Query the database and put the results into the data frame "dataframe" 
ptm <- proc.time() 
x<-sqlQuery(con, "select * from my_table") 
proc.time()-ptm 


# to extract all field names to the separate vector 
#field_names<-sqlQuery(con,"SELECT column_name FROM all_tab_cols WHERE table_name = 'MY_TABLE'") 

close(con) 
} 

debug(download1(),text = "", condition = NULL) 
+0

@vck是正確的,你需要寫'debug(download1)'而不是debug(download1())。原因是你想要傳遞函數對象到方法中函數調用arantheses)而不是函數的返回值。在你的代碼中,download1()被執行,然後返回值(它沒有)被傳遞給調試方法。更多關於調試:http://blog.haunschmid.name/debugging-in-r/ –

回答

1

使用

debug(download1) 
download1() 
+0

非常感謝。在我看來,我似乎被編碼重載:-)一切看起來很簡單。 –