在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函数以及如何让它工作?
答案 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也是如此。