我有一个包含大量数据的Excel文件。 Excel中可用的内置图表 不足以分析这些数据,因此我正在考虑使用像octave或R这样的工具。
我正在考虑将Excel文件直接加载到octave或R中的一些方法。我搜索了网页,发现许多人通过将Excel中的数据导出到CSV文件中成功使用。
问题: 有没有直接的方法在R或Octave中加载Excel文件?
答案 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,??xls
是help.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)