我有一个包含大量数据的 Excel 文件。Excel 中可用的内置图表不足以分析这些数据,所以我正在考虑使用诸如 octave 或 R 之类的工具。
我正在考虑一些将 Excel 文件直接加载到 octave 或 R 中的方法。我在网上搜索,发现很多人通过将 Excel 中的数据导出到 CSV 文件中成功使用。
问题:有没有直接的方法在 R 或 Octave 中加载 Excel 文件?
我有一个包含大量数据的 Excel 文件。Excel 中可用的内置图表不足以分析这些数据,所以我正在考虑使用诸如 octave 或 R 之类的工具。
我正在考虑一些将 Excel 文件直接加载到 octave 或 R 中的方法。我在网上搜索,发现很多人通过将 Excel 中的数据导出到 CSV 文件中成功使用。
问题:有没有直接的方法在 R 或 Octave 中加载 Excel 文件?
是的,方法如下:
Windows 用户可以使用 RODBC 包中的 odbcConnectExcel。这可以从 Excel 电子表格文件中的任何工作表中选择行和列(至少从 Excel 97–2003,具体取决于您的 ODBC 驱动程序:通过直接调用 odbcConnect 可以读取回到 Excel 3.0 的版本)。odbcConnectExcel2007 版本将读取 Excel 2007 格式以及更早的格式(前提是已安装驱动程序:请参阅 RODBC)。
您的问题已经得到解答。如果这对将来的某些情况有所帮助,对于这些类型的问题,一个真正有用的资源是R Data Import/Export 文档,它涵盖了许多有用的 API、包、提示等,用于从一些常见的数据库和文件格式访问数据。
例如,有一个Excel 部分,它涵盖了已经提供的答案中的很多内容。
另一个有用的提示是尝试 R 帮助搜索系统。例如,在 R 提示符下尝试以下任一操作:
> ??xls
> ??excel
编辑:顺便说一句,??xls
是help.search("xls")
.
最简单的方法是将您的数据采用 CSV 文件的形式,然后用于read.csv()
读取数据。请注意,当您读入数据时,R 将读入字符串并将它们转换为因子。当您尝试对数据等进行子集化时,这可能会成为一个问题。
或者,如果您想将其作为本机 Excel 文件读取,则可以使用该RODBC
包。
library('RODBC')
yourData <- sqlFetch(odbcConnectExcel("yourData.xls"),
sqtable = "nameOfSheet",
na.strings = "NA",
as.is = TRUE)
odbcCloseAll()
一个更简单的 Windows 解决方案是使用xlsReadWrite包。无需 Perl,只需安装为 R 包,您就可以随心所欲地读写 Excel 文件。
现在我们可以使用 read.csv 或 read.table。
例如
df = read.csv("~/data/demo.csv",header = TRUE)