在Ubuntu上找不到R的RODBC包的odbcConnectExcel函数

时间:2010-08-06 18:09:47

标签: r packages rodbc

在Ubuntu上安装RODBC软件包有点麻烦。首先我学会了安装以下内容:

$ sudo apt-get install r-cran-rodbc

这还不够好,因为软件包仍在寻找头文件。我通过以下方式解决了这个问题:

$ sudo apt-get install unixodbc-dev

很好,RODBC在Ubuntu机器上正确安装。但是当我尝试运行以下脚本时:

## import excel file from Dropbox

require("RODBC")

channel <- odbcConnectExcel("~/Dropbox/DATA/SAMPLE/petro.xls")

petro <- sqlFetch (channel, "weekly")

odbcClose(channel)

str(petro)
head(petro)

我收到一个错误,即找不到函数odbcConnectExcel。我检查了每个字母的情况,确保它不是一个简单的拼写错误。不。然后我在Windows R安装上运行相同的脚本(文件路径当然不同),脚本可以工作。

为什么Ubuntu R安装无法找到odbcConnectExcel函数以及如何让它工作?

2 个答案:

答案 0 :(得分:6)

在Excel可用的情况下,该功能可用。换句话说:不在Ubuntu上。

供参考,来自R Data Import / Export manual(突出显示):

  

4.3.2包装RODBC

     

CRAN上的RODBC包提供了一个   数据库源的接口   支持ODBC接口。这是   广泛可用,并允许   相同的R代码访问不同   数据库系统。 RODBC继续运行   Unix / Linux,Windows和Mac OS X,以及   几乎所有数据库系统都提供   支持ODBC。我们已经测试过   Microsoft SQL Server,Access,MySQL,   PostgreSQL,Oracle和IBM DB2上   Windows和MySQL,Oracle,PostgreSQL   和Linux上的SQLite。

     

ODBC是一个客户端 - 服务器系统,我们   愉快地连接到DBMS   从一个Unix服务器上运行   Windows客户端,反之亦然。

     

在Windows上,通常支持ODBC   安装,当前版本   可从   http://www.microsoft.com/data/odbc/ as   MDAC的一部分。在Unix / Linux上你会   需要一个ODBC驱动程序管理器,如   unixODBC(http://www.unixODBC.org)或   iOBDC(http://www.iODBC.org:这是   预安装在Mac OS X中)和   为您的数据库安装驱动程序   系统

     

Windows不仅提供驱动程序   DBMS,也适用于Excel(.xls)   电子表格, DBase(.dbf)文件和   甚至是文本文件。 (命名   应用程序不需要   安装。哪种文件格式   支持取决于版本   驱动程序。)有版本   对于Excel 2007和Access 2007(转到   http://download.microsoft.com,和   搜索Office ODBC,这将是   导致AccessDatabaseEngine.exe),.   “2007 Office System Driver”。

答案 1 :(得分:5)

我发现RODBC在Ubuntu中真的很痛苦。也许是因为我不知道正确的咒语,但我转而使用RJDBC并且运气好得多。 As discussed here

正如Dirk所说,这不会解决您的Excel问题。为了编写Excel,我对WriteXLS包非常满意。在Ubuntu中,我发现它很容易设置。我已经安装了Perl和许多软件包,只需安装我使用GUI软件包管理器安装的Text :: CSV_XS。我喜欢WriteXLS的原因是能够将数据帧写入Excel文件中的不同工作表。现在,我看看你的问题,我发现你想要阅读Excel文件而不是写它们。地狱。 WriteXLS不会这样做。坚持使用gdata,就像Dirk在评论中所说:

gdata on CRAN,您将需要read.xls()函数:

read.xls("//path//to/excelfile.xls", sheet = 1, verbose=FALSE, pattern, ...,
method=c("csv","tsv","tab"), perl="perl")

您可能需要运行安装所需Perl模块的installXLSXsupport

read.xls期望表格编号,而不是名称。方法参数只是中间文件格式。如果您的数据有选项卡,则不要使用tab作为中间格式。对于逗号和csv也是如此。