R语言:64位操作系统读取excel文件方法总结

来源:互联网 发布:赖昌星 红楼 知乎 编辑:程序博客网 时间:2024/04/30 09:10

首先尝试的是RODBC,不过过程相当不顺利 我电脑上安装的是office 2003,ODBC数据源里面找不到excel的驱动程序 原因是office是32为版本,安装的驱动程序无法在64位的win7上使用。 运行c:\windows\sysWOW64\odbcad3 …
1、首先尝试的是RODBC,不过过程相当不顺利
我电脑上安装的是office 2003,ODBC数据源里面找不到excel的驱动程序
原因是office是32为版本,安装的驱动程序无法在64位的win7上使用。
运行c:\windows\sysWOW64\odbcad32.exe后,可以配置32为的ODBC数据源。

按照网上的说明,建立32位的数据源后,无法在R里面获取连接

conn = odbcConnect(“contacts”)
Warning messages:
1: In odbcDriverConnect(“DSN=contacts”) :
[RODBC] ERROR: state IM014, code 0, message [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application
2: In odbcDriverConnect(“DSN=contacts”) : ODBC connection failed

使用odbcConnectExcel方法也失败了,不支持64位的windows,错误如下:

odbcConnectExcel(“c:/r-workspace/contacts.xls”)
Error in odbcConnectExcel(“c:/r-workspace/contacts.xls”) :
odbcConnectExcel is only usable with 32-bit Windows

2、测试使用剪贴板的读取excel的方法,是可以的,但总觉得不是好办法

df = read.table(“clipboard”, header=TRUE, sep=”\t”)
df
name gender address
1 张三 男 北京
2 李四 男 上海
3 王五 女 广州
4 赵六 女 深圳
5 田七 男 南京

3、成功使用XLConnect的包直接读取excel文件,就是这个包依赖于XLConnectJars包,比较大(15.7M)

install.packages(“XLConnect”)
library(“XLConnect”)
df = readWorksheetFromFile(“c:/r-workspace/contacts.xls”, sheet=1, header=TRUE)
df
name gender address
1 张三 男 北京
2 李四 男 上海
3 王五 女 广州
4 赵六 女 深圳
5 田七 男 南京

4、下面我要说的这种方法,是安装xlsx包。

大家会发现安装这样一个package,本身没有什么难度,但是你用不了read.xlsx这个函数。
用的R版本是:3.1.1
原因在于要安装rJava这个包。而安装这个包,需要先在电脑里安装Java程序才行。

有的时候,安装了Java还是不行。之前帮人安装了一下,发现一个小技巧:

如果将Java安装到和R的安装文件一个目录下,基本就没有什么问题,也不存在网上说的:要设置Java环境变量。

另外,大家去Java官网下载的时候,最好是离线安装,不要选择在线安装。

如下gif图:
这里写图片描述
安装Java程序
总结一下成功使用xlsx包的步骤:(楼主的系统是win7 32位的)
1.安装Java程序(上传了一个win7 32位系统的Java安装程序及网址:http://www.java.com/zh_CN/download/windows_offline.jsp)
2.在R里面输入:

install.packages("rJava")install.packages("xlsx")

复制代码
安装这两个包,会提示你还有一个包, “xlsxjars”这个包一般会在这个过程中自动安装,如果没有安装的话,可以再按照上面的命令,安装一个”xlsxjars”这个包。
3.接下来:

>library(xlsx)Loading required package: rJavaLoading required package: xlsxjars

复制代码
出现下面两个,就算安装成功了。
接下来就可以使用read.xlsx函数读取了,具体用法可以:

?read.xlsx

复制代码
备注:
大家可能觉得读取xlsx文件,安装个Java程序很麻烦的。因为R是开源的软件,调用其它程序来实现一些更为强大的功能,也是常有的事情。安装了rJava这个包和Java程序之后,有一个比较好的MINE程序也可以运行的,还可以实现中文分词等更多功能。
为了以后可以使用更多好的程序,为什么不能忍一时之费事,而为将来节约更多的时间呢?

0 0
原创粉丝点击