Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How does one install 'rj' in StatET plugin for Eclipse?

Tags:

r

eclipse

I have started to try to use StatET and Texlipse with a view to producing SWEAVE reports. When starting the R console in the StatET plug-in for Eclipse (OS X 10.6.4), I get the message:

[INFO] The R package 'rj' is not available, R-StatET tools cannot be initialized.

Information on http://www.walware.de/goto/statet states:

"The package only works in the default R Console (RJ) in StatET. Therefore you have to install and update it using the command line":

R CMD INSTALL --no-test-load rj_*.tar.gz

What does this mean exactly?

In Eclipse under "Install new Software" and the site

WalWare - http://download.walware.de/eclipse-3.6

it states that

  RJ Core Library 0.5.0.b201008271600sw

is already installed.

Any helpful guidance gratefully received.

like image 686
user441706 Avatar asked Sep 16 '10 14:09

user441706


3 Answers

[rant] I also lack the reputation to put my response where it belongs. And there's no button there indicating this. Just a big screen full of nowhere desired to click upon. Negative discoverability sucks. It sucks in Eclipse and it sucks here, too. [/rant]

I'm finding rj frustrating under Ubuntu. On my system, with each major Ubuntu upgrade with a new version of R, I have to go through this procedure over again.

One time I tried to use a tilde (~) character in a path name within some Eclipse configuration field. This failed silently.

My current configuration is as follows. In my ~/.Renviron file:

R_LIBS_USER=~/etc/R/amd64/2.11

Once rJava works, there is an rJava directory here. Just so I don't drive myself insane, in ~/etc/R/README I put a note that my current R configuration is controlled by ~/.Renviron

Somehow at one point I ended up with permission problems where

R CMD javareconf 

was failing. Once in frustration I foolishly ran this under sudo to work around this problem, and ended up with permission problems on the generated files. Stupid! The correct fix was to make all the files in /etc/R world readable. Maybe javareconf is only important if you mess with your default Java. Previously, I was running the Sun's JRE. Since 10.10 I'm running icedtea6 and it seems to be working OK. One time it was just the thing to make my configuration work again.

Once I have the right Java binding, from command line R:

install.packages("rJava")

I've had file permission problems running this in the past. I think it was fixed by making all files in /etc/R world readable.

The following is a useful diagnostic to see if this worked, from within any R console:

> system.file("jri",package="rJava")
[1] "/home/allan/etc/R/amd64/2.11/rJava/jri"

If it doesn't look right under Eclipse, there is also some startup debugging available, though it took forever before I noticed this in the docs at StatET.

I created an R Console run configuration for R 2.11 debug In the JRE tab add -Dde.walware.rj.verbose=true. In the Common tab, click Allocate additional Error Log Consoles.

The main configuration options are as follows. Main tab, Launch Type: RJ. R_Config tab, you need to select a Configured R Installation, or create/edit one if you don't have one that works. Mine is Name=R, Location=/usr/lib64/R In the Environment tab I have R_LIBS_USER=/home/USER/etc/R/amd64/2.11 according to how I set things up above. Do not use the tilde (~) character here!

If you end up mucking about with this problem as much as I did, you end up killing a lot of dead consoles. In the Main tab I added the program option --no-save. I don't think this does anything, since I can't end my console by pressing CTRL-D. In the R_Console tab, I added the following R snippet:

q <- function(save = "no", status = 0, runLast = TRUE){
.Internal(quit(save, status, runLast))
#<environment: namespace:base>
}

This gets rid of the annoying "save workspace" prompt when killing an R console with the red square (is that symbolic?) My current workspace also includes a C project, so my R console constantly comes up underneath a blank C-Build console. Annoying as all hell! Haven't solved that yet, but I did discover that from within a StatET code windows the keybinding CTRL-R C pulls the R console to the top.

With my R 2.11 debug configuration I get an extra console titled /usr/lib/jvm/java-6-openjdk/bin/java. You'll have to spelunk the console drop-down to find it. The following is a pertinent snippet of a successful initialization:

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  

A lot more spoo, then finally:

10-Dec-2010 7:56:48 AM de.walware.rj.server.jriImpl.RosudaJRIServer start
INFO: R engine started successfully. New Client-State: 'Connected'.

Looks good, right? But lo and behold in the R console:

[INFO] The R package 'rj' is not available, R-StatET tools cannot be initialized.

Ignore the lying bastard! Turns out my rj is working just fine. No idea why this failure message persists.

Every time around the block with this problem some new amazing piece of gravel ends up in my sneaker.

I don't know whether I've covered everything, but I've written enough for now. Maybe if there are comments I'll come back and fill in the blanks.

Note: found an Eclipse plugin for console switching by keyboard here: Eclipse: Keyboard shortcut for switching between consoles?

like image 160
Allan Stokes Avatar answered Oct 04 '22 19:10

Allan Stokes


It looks like you need to install the RJ library which can be downloaded from the StatET site here: http://download.walware.de/rj/rj_0.5.0-5.tar.gz (more recent versions of RJ can be found at http://www.walware.de/it/downloads/rj.mframe)

If you save that file on your desktop, you can then load it into R with the command they provided R CMD INSTALL --no-test-load rj_*.tar.gz after navigating to your desktop or wherever you saved the library file. Alternatively, you MAY be able to use the GUI interface and select Install packages from local ZIP files under Packages in R, though I haven't used R on a Mac so the layout may be slightly different.

like image 37
Chase Avatar answered Oct 04 '22 21:10

Chase


After installing rj with in the R console using

install.packages(c("rj", "rj.gd"), repos="http://download.walware.de/rj-1.1")

(See http://www.walware.de/?page=/it/statet/troubleshooting.mframe for the correct rj version),

do not forget to update the R_LIBS variable in Eclipse (Windows -> Preferences -> StatET -> Run/Debug -> R Environments -> Edit). To find out the value just type in the R console:

packageDescription("rj").

In my windows 8 installation this returns C:/Users/Fibonacci.PYTHAGORAS/Documents/R/win-library/3.0/rj/Meta/package.rds. The value of R_LIBS I set to

C:/Users/Fibonacci.PYTHAGORAS/Documents/R/win-library/3.0

which is the path where all libraries are installed.

As stated in http://www.walware.de/?page=/it/statet/troubleshooting.mframe newer versions (Versions > 0.5.5) do not need the R CMD INSTALL etc... command.

like image 43
Malu Avatar answered Oct 04 '22 19:10

Malu