用于合并R中的文件的ODBC连接错误

时间:2016-12-30 14:18:15

标签: r excel rodbc

我正在尝试使用odbcConnectExcel2007包中的R中的RODBC函数读取Excel文件。在阅读单个文件时,它正在工作。但是当我尝试使用for循环函数运行时,它会抛出以下错误

3 stop(sQuote(tablename), ": table not found on channel") 
2 odbcTableExists(channel, sqtable) 
1 sqlFetch(conn1, sqlTables(conn1)$TABLE_NAME[1]) 

以下是代码: -

file_list <- list.files("./Raw Data")
file_list

for (i in 1:length(file_list)){

     conn1 = odbcConnectExcel2007(paste0("./Raw Data/",file_list[i])) # open a   connection to the Excel file
     sqlTables(conn1)$TABLE_NAME
     data=sqlFetch(conn1, sqlTables(conn1)$TABLE_NAME[1])
     close(conn1)

     data <- data[,c("Branch","Custome","Category","Sub Category","SKU"
                      "Weight","Order Type","Invoice Date")]


     if(i==1) alldata=data else{
     alldata = rbind(alldata,data)
    }

}

我会感激任何帮助。 提前致谢。

1 个答案:

答案 0 :(得分:0)

我认为它已经搞砸了从sqlTables(conn1)$ TABLE_NAME对象返回引号的表名。尝试删除引号来操作表名。像这样:

table <- sqlTables(conn1)$TABLE_NAME
  table <- noquote(table)
  table <- gsub("\'", "", table)

然后就这样做:

data=sqlFetch(conn1, table)