2013-04-11 230 views
1

當我嘗試運行sqlFetch語句時,我間歇性地收到以下錯誤。從excel中獲取數據R

Error in odbcTableExists(channel, sqtable) : 
    ‘Sheet20’: table not found on channel 
+1

直接從Excel中獲取數據很難,難道你不能將你的數據導出爲.csv格式嗎? – Stijn 2013-04-11 09:38:38

+0

我同意@Stijn很難從excel中導入數據,但並非總是如此。我們能否看到一個數據的例子(可能是一張表的截圖)? – 2013-04-11 09:44:51

+1

你可以使用'xlsx'包的'read.xlsx'函數? – JT85 2013-04-11 11:11:17

回答

0

odbcTableExistsRODBC包的內部函數。這行代碼

if (abort && !ans) 
    stop(sQuote(tablename), ": table not found on channel") 

意味着表名存在問題(很明顯)。仔細檢查表名的大小寫,即使sql語句不區分大小寫R是!

如果不是問題,請嘗試從gdata包中獲取read.xls功能。它依靠一個Perl庫將excel電子表格轉換爲csv,然後致電read.table。這意味着您可以將read.xls的任何參數傳遞給read.table,這有時非常有用。

希望有所幫助。

2

如果您不滿意ODBC,我建議您看看XLConnect或其他Excel界面包之一。