我已经开始尝试使用StatET和Texlipse来生成SWEAVE报告.在Eclipse的StatET插件(OS X 10.6.4)中启动R控制台时,我收到消息:
[INFO] The R package 'rj' is not available, R-StatET tools cannot be initialized.
Run Code Online (Sandbox Code Playgroud)
有关http://www.walware.de/goto/statet的信息指出:
"该软件包仅适用于StatET中的默认R控制台(RJ).因此,您必须使用命令行安装和更新它:"
R CMD INSTALL --no-test-load rj_*.tar.gz
Run Code Online (Sandbox Code Playgroud)
这究竟是什么意思?
在Eclipse下的"安装新软件"和网站下
WalWare - http://download.walware.de/eclipse-3.6
Run Code Online (Sandbox Code Playgroud)
它说明了这一点
RJ Core Library 0.5.0.b201008271600sw
Run Code Online (Sandbox Code Playgroud)
已安装.
任何有用的指导感激不尽.
[咆哮]我也缺乏将我的回答放在它所属的地方的声誉.那里没有按钮表明这一点.只是一个无处可见的大屏幕点击.负面的可发现性很糟糕.它在Eclipse中很糟糕,在这里也很糟糕.[/咆哮]
我发现在Ubuntu下令人沮丧.在我的系统上,每个主要的Ubuntu升级都使用新版本的R,我必须重新执行此过程.
有一次我尝试在某个Eclipse配置字段中的路径名中使用波浪号(〜)字符.这无声地失败了.
我目前的配置如下.在我的〜/ .Renviron文件中:
R_LIBS_USER=~/etc/R/amd64/2.11
Run Code Online (Sandbox Code Playgroud)
一旦rJava工作,这里就有一个rJava目录.就这样我不会让自己疯狂,在〜/ etc/R/README中我注意到我当前的R配置是由〜/ .Renviron控制的
不知怎的,有一次我最终遇到了许可问题
R CMD javareconf
Run Code Online (Sandbox Code Playgroud)
失败了.一旦感到沮丧,我愚蠢地运行这个sudo来解决这个问题,并最终导致生成的文件的权限问题.笨!正确的解决方法是使所有文件都是/etc/R可读的.也许javareconf只有在您使用默认Java时才会很重要.以前,我在运行Sun的JRE.从10.10开始,我正在运行icedtea6,它似乎工作正常.有一次,我的配置再次成功.
一旦我有正确的Java绑定,从命令行R:
install.packages("rJava")
Run Code Online (Sandbox Code Playgroud)
我过去曾经遇到过文件权限问题.我认为这是通过使所有文件在/etc/R世界上可读来解决的.
以下是一个有用的诊断,以查看是否有效,从任何R控制台:
> system.file("jri",package="rJava")
[1] "/home/allan/etc/R/amd64/2.11/rJava/jri"
Run Code Online (Sandbox Code Playgroud)
如果它在Eclipse下看起来不正确,那么也可以进行一些启动调试,尽管在我在StatET的文档中注意到它之前它已经花了很长时间.
我为R 2.11 debug JRE选项卡添加了一个R Console运行配置-Dde.walware.rj.verbose=true.在Common选项卡中,单击Allocate additional Error Log Consoles.
主要配置选项如下.主标签,Launch Type: RJ.R_Config选项卡,您需要选择已配置的R安装,或者如果没有可用的安装,则创建/编辑一个.我Name=R, Location=/usr/lib64/R 在环境标签中R_LIBS_USER=/home/USER/etc/R/amd64/2.11根据我如何设置上面的内容.不要在这里使用波浪号(〜)字符!
如果你最终像我一样捣乱这个问题,你最终会杀死很多死机.在主选项卡中,我添加了程序选项--no-save.我认为这没有任何作用,因为我不能通过按CTRL-D来结束我的控制台.在R_Console选项卡中,我添加了以下R片段:
q <- function(save = "no", status = 0, runLast = TRUE){
.Internal(quit(save, status, runLast))
#<environment: namespace:base>
}
Run Code Online (Sandbox Code Playgroud)
当用红色方块杀死一个R控制台时,这摆脱了烦人的"保存工作区"提示(这是符号?)我当前的工作区还包括一个C项目,所以我的R控制台不断出现在空白的C-Build控制台下面.一切都很烦人!尚未解决这个问题,但我确实发现,在一个StatET代码窗口中,键绑定CTRL-R C将R控制台拉到顶部.
通过我的R 2.11 debug配置,我得到一个额外的控制台标题/usr/lib/jvm/java-6-openjdk/bin/java.你必须在控制台下拉列表中找到它.以下是成功初始化的相关片段:
CONFIG: JR library path:
/home/allan/etc/R/amd64/2.11
/usr/local/lib64/R/site-library
/usr/lib64/R/library
10-Dec-2010 7:56:47 AM org.rosuda.rj.JRClassLoader addClassPath
FINE: Added '/home/allan/etc/R/amd64/2.11/rJava/java' to classpath of URL loader
Run Code Online (Sandbox Code Playgroud)
更多的spoo,然后终于:
10-Dec-2010 7:56:48 AM de.walware.rj.server.jriImpl.RosudaJRIServer start
INFO: R engine started successfully. New Client-State: 'Connected'.
Run Code Online (Sandbox Code Playgroud)
看起来不错吧?但是在R控制台中看到:
[INFO] The R package 'rj' is not available, R-StatET tools cannot be initialized.
Run Code Online (Sandbox Code Playgroud)
忽略那个撒谎的私生子! 原来我的rj工作得很好.不知道为什么这个失败消息仍然存在.
每次遇到这个问题时,一些新的惊人的碎石都会在我的运动鞋中出现.
我不知道我是否已经涵盖了所有内容,但我现在已经写得足够了.也许如果有评论我会回来填补空白.
注意:在这里找到一个用于键盘控制台切换的Eclipse插件:Eclipse:用于在控制台之间切换的键盘快捷键?
看起来您需要安装 RJ 库,可以从 StatET 站点下载该库: http: //download.walware.de/rj/rj_0.5.0-5.tar.gz(可以找到更新版本的 RJ)在http://www.walware.de/it/downloads/rj.mframe)
如果将该文件保存在桌面上,则可以R CMD INSTALL --no-test-load rj_*.tar.gz在导航到桌面或保存库文件的位置后使用他们提供的命令将其加载到 R 中。或者,您可以使用 GUI 界面并在 RInstall packages from local ZIP files中选择Packages,尽管我没有在 Mac 上使用过 R,因此布局可能略有不同。