5

我有一个包含大量数据的 Excel 文件。Excel 中可用的内置图表不足以分析这些数据,所以我正在考虑使用诸如 octave 或 R 之类的工具。

我正在考虑一些将 Excel 文件直接加载到 octave 或 R 中的方法。我在网上搜索,发现很多人通过将 Excel 中的数据导出到 CSV 文件中成功使用。

问题:有没有直接的方法在 R 或 Octave 中加载 Excel 文件?

4

6 回答 6

4

的,方法如下:

Windows 用户可以使用 RODBC 包中的 odbcConnectExcel。这可以从 Excel 电子表格文件中的任何工作表中选择行和列(至少从 Excel 97–2003,具体取决于您的 ODBC 驱动程序:通过直接调用 odbcConnect 可以读取回到 Excel 3.0 的版本)。odbcConnectExcel2007 版本将读取 Excel 2007 格式以及更早的格式(前提是已安装驱动程序:请参阅 RODBC)。

于 2009-07-29T00:20:11.167 回答
3

您的问题已经得到解答。如果这对将来的某些情况有所帮助,对于这些类型的问题,一个真正有用的资源是R Data Import/Export 文档,它涵盖了许多有用的 API、包、提示等,用于从一些常见的数据库和文件格式访问数据。

例如,有一个Excel 部分,它涵盖了已经提供的答案中的很多内容。

另一个有用的提示是尝试 R 帮助搜索系统。例如,在 R 提示符下尝试以下任一操作:

> ??xls
> ??excel

编辑:顺便说一句,??xlshelp.search("xls").

于 2009-07-29T00:51:34.420 回答
3

另一个(甚至是可移植的)选项read.xlsgdata包中。它是跨平台的,因为它依赖于底层 Perl 代码来解析、读取……数据从 xls 文件到一个 csv 文件,然后读取该文件。所需的 Perl 包都由gdata提供。

使用相同的技巧可以轻松创建 Octave 包。

于 2009-07-29T00:33:03.120 回答
1

最简单的方法是将您的数据采用 CSV 文件的形式,然后用于read.csv()读取数据。请注意,当您读入数据时,R 将读入字符串并将它们转换为因子。当您尝试对数据等进行子集化时,这可能会成为一个问题。

或者,如果您想将其作为本机 Excel 文件读取,则可以使用该RODBC包。

library('RODBC')
yourData <- sqlFetch(odbcConnectExcel("yourData.xls"), 
  sqtable = "nameOfSheet",
  na.strings = "NA", 
  as.is = TRUE)                    
odbcCloseAll()
于 2009-07-29T01:36:14.977 回答
1

一个更简单的 Windows 解决方案是使用xlsReadWrite包。无需 Perl,只需安装为 R 包,您就可以随心所欲地读写 Excel 文件。

于 2009-07-29T07:24:45.353 回答
0

现在我们可以使用 read.csv 或 read.table。

例如

df = read.csv("~/data/demo.csv",header = TRUE)
于 2016-09-12T12:13:08.943 回答