最常见的R数据导入/导出问题可能是`我如何读一个Excel电子表格'。 本章汇总了早先给出的建议和可选方案。 注意,大多数建议都是基于Excel 2007 以前版本的 Excel 电子表格:现在只有一种方法可以读取 .xlsx格式的文件,就是通过 RODBC。
第一个建议就是尽量避免这样做!如果你可以访问Excel,把你的Excel数据
用制表符分隔或逗号分隔的格式导出,然后用 read.delim 或
read.csv 导入R。
(在采用逗号作为小数点的欧洲大陆本地系统里面,你可能需要用 read.delim2 或
read.csv2。)
导出一个DIF文件然后用read.DIF
读入是另外一种可能性。
如果你没有Excel,还有许多其它软件可以用来读这种
电子表格然后导出为文本格式,无论在Windows还是Unix系统。
例如,Gnumeric (http://www.gnome.org/projects/gnumeric/)和
OpenOffice (http://www.openoffice.org)。你还可以
在这些软件里面展示的电子表格和R之间用剪切-粘帖功能:
read.table 能从 R 控制台读入 或者在Windows里面,从
剪贴板(通过file = "clipboard"或readClipboard)。
read.DIF 也能从剪贴板读入。
注意,Excel 文件 .xls 不仅仅是一个电子表格:这种文件可能会含有 很多电子表格,而且这些表单能包含公式,宏等等。 不是所有的读者都可以看到第一个表单外的其它表单,并且可能 对文件的其它内容比较困惑。
Windows用户可以用包 RODBC 里面的odbcConnectExcel 。
这可以选择Excel电子表格中的任何一个电子表格的行和列。
odbcConnectExcel2007可以读Excel 2007 格式和早期的版本
(假定安装了最新的驱动:见前面的内容)。
也是只用于Windows系统,包 xlsReadWrite 有一个函数
read.xls 来读.xls文件(基于第三方的
非开源的Delphi组分)。
Perl 用户捐献过一个模块
OLE::SpreadSheet::ParseExcel 和一个程序 xls2csv.pl 来
把Excel电子表格转换为CSV文件。包 gdata 在函数 read.xls
中队这些模块进行了基本的封装。