将Excel文件中的数据加载到R或Octave中

时间:2009-07-29 00:11:38

标签: excel r octave import-from-excel

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

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

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

6 个答案:

答案 0 :(得分:4)

是的,here's how

  

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

答案 1 :(得分:3)

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

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

答案 2 :(得分:3)

您的问题已经得到解答。如果这有助于未来的某些案例,那么这些类型的问题真正有用的资源是R Data Import/Export document,它涵盖了许多有用的API,包,提示等,用于从一些常见数据库和文件格式访问数据。

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

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

> ??xls
> ??excel

编辑:BTW,??xlshelp.search("xls")的缩写。

答案 3 :(得分:1)

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

或者,如果您想将其作为原生Excel文件阅读,那么您可以使用RODBC包。

library('RODBC')
yourData <- sqlFetch(odbcConnectExcel("yourData.xls"), 
  sqtable = "nameOfSheet",
  na.strings = "NA", 
  as.is = TRUE)                    
odbcCloseAll()

答案 4 :(得分:1)

更简单的Windows解决方案是使用xlsReadWrite包。不需要Perl,只需安装为R包,您就可以读取和写入Excel文件。

答案 5 :(得分:0)

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

例如

df = read.csv("~/data/demo.csv",header = TRUE)