最近准备用R做一些作品,不小心接触到了rJava包和Rwordseg包,我相信有接触过的朋友都会深有体会:这两个包真的是让人又气又恨!!!不是这个包不好用,而是连安装都没法安装到R中,何谈使用呢。
下面,就来谈一谈我遇到的问题及解决方法。
第一个问题:无法下载Rwordseg包
一般来说,遇到需要安装多个包,我都是先统一下载(install.pacages),再统一加载(library),比如:
install.packages("rJava")
install.packages("Rwordseg")
library(rJava)
library(Rwordseg)
谁知道这次才第二句就遇到了麻烦啊喂!
好么,不行咱就换种方式,先把包下载到本地,再进行加载。
思路很清晰,接下来运行代码吧。我知道Rwordseg是需要依附于rJava包的,因此先运行:
library(rJava)
然鹅……还是木有想到!
第二个问题:无法加载rJava包
在RStudio中运行:
library(rJava)
结果出错了,那么我就想着也把rJava包下载到本地再进行加载。
结果,如下所示,还是错误。
我就猜测:可能这里是RStudio的缘故吧。(谁知道我当时为什么会这么傻逼的想。)
在R中安装本地包:
不仅没安装成功,就连后面的dplyr包也出现错误了。
当时我的心情是崩溃的。
还好有百度、必应、谷歌等好东西。
然后就是进行一系列测试:
方法一:管理员身份重启程序。
library(rJava)
- 出错!
方法二:关闭杀软,管理员身份重启程序。
library(rJava)
- 出错!
方法三:重启电脑,关闭杀软,管理员身份重启程序。
library(rJava)
- 还是出错!!
每一次的结果都如下图所示:
最终,在一篇帖子中有人说,安装的Jre位数跟使用的R位数必须相同。
突然反应过来,我好像没有安装Jre!!!
那安装rJava有pi用啊!!!
找到原因的心情就是爽!
然后上网、搜索、下载、安装……
第三个问题:还是加载不了rJava
搞定一切之后,为了避免再次出错,我选择了重启电脑,关闭杀软,以管理员身份打开R,再加载……
W T F!!!
Why???
再次百度、必应、谷歌……
终于找到原因了,原来要配置好Java,不仅仅需要jre,还需要jdk,还需要配置环境变量,而且是先安装64位的jdk,在安装jdk的时候,会在后面提示安装jre。
那就开搞!
参考网上这篇文章进行配置:http://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html
搞定之后,运行
library(rJava)
又一次出现了下图:
然鹅,这一次,找不到原因,但是找到了解决方法:
在载入rJava包之前,先手动在R环境中设置环境变量。
Sys.setenv(JAVA_HOME='D:/software/java/jdk/jre')
library(rJava)
这样一来,每次加载rJava就不会出错了。
第四个问题:Rwordseg乱码
把Rwordseg包下载到本地之后,开始手动安装,哎,代码没报错,应该没问题了吧。
哈哈,机智如我。
关了软件重新再来一遍试试。
然鹅,再次加载的时候遇到了这样的情况:
这一堆乱码是怎么回事?
“没事的没事的,只是显示有问题,真正运行的时候肯定没问题的。”(自己傻逼逼地安慰自己)
然后,用R来本地安装Rwordseg包,还是有问题啊!!!
再一次,百度、必应、谷歌……
终于,皇天不负有心人,让我再次找到了解决方法
http://www.cnblogs.com/Nashear/p/4884747.html
使用第一种功能方法,在线安装,不过需要指定安装地址。
install.packages("Rwordseg",repos="http://R-Forge.R-project.org")
library(Rwordseg)
这一次,成功了!!!
果然,还是机智如我!!!
总结
加载rJava和Rwordseg包的方法就是:
1) 安装与R相同位数的jdk,配置好环境变量。
2) 在加载rJava包之前,手动在R环境中设置环境变量,像这样:Sys.setenv(JAVA_HOME='D:/software/java/jdk/jre')
3) 在线安装Rwordseg包,指定网址:install.packages("Rwordseg", repos = "http://R-Forge.R-project.org")。
完整代码如下:
install.packages("rJava")
Sys.setenv(JAVA_HOME='D:/software/java/jdk/jre')#注意路径需要是自己安装jdk的路径。
library(rJava)
install.packages("Rwordseg",repos="http://R-Forge.R-project.org")
library(Rwordseg)
最后,欢迎与各位交流。(Email:[email protected])