Acerca de… Un GUI hecho en Java para R

¿Un GUI? ¿Qué es eso? Pues eso me preguntaba yo.

Pues no es más que una forma amigable de interaccionar con el ordenador, en este caso con el R, que como sabemos no es muy amigable. En la Wikipedia hay un definición mejor, pero más difícil de entender.

La versión para Windows de R viene con un GUI, puedes escribir scripts en un editor, hay menús y todo eso. Pero en Linux hasta ahora solo había consola y editor de textos.

editado 27/10/2011: Mirad esta entrada.

Pues el JGR es un GUI para R en Linux, Lo he probado y hasta ahora va bastante bien. Para instalarlo hay una receta bastante fácil, a lmenos para Ubuntu: Instalar la última versión de R, instalar el Java o algo parecido, presentarlos (según ellos Enable Java support in R) y instalar los paquetes en R. Ojo, al instalar los paquetes en R el R lo debemos ejecutar con sudo:

nobre_usuario@nombre_maquina:˜$ sudo R

Pues eso, a disfrutar.

Gracias a elProf y a jjgibaja que me dijeron donde encontrar esto.

P.D.: Después de instalar el programa, hay que actualizar el paquete desde R.

> JGR(update=T)

Si no lo hacemos no funciona la ayuda, y cada vez que ejecutamos el JGR hay que cargar la librería como cuando se instaló el paquete.

EDITO (20/04/2009)

Se puede hacer un ejecutable en el escritorio para ejecutar JGR directmente sin ejecutar el R.

Nos lo sugiere en la consola cuando ponemos JGR()

> library(JGR)
Loading required package: rJava
Loading required package: JavaGD
Loading required package: iplots

Please use the corresponding JGR launcher to start JGR.
Run JGR() for details. You can also use JGR(update=TRUE) to update JGR.

> JGR()
Starting JGR …
(You can use /usr/local/lib/R/site-library/JGR/scripts/run to start JGR directly)

Supongo que según la estructura de directorios de cada uno será diferente.

Lo que hay que hacer es crear un lanzador en el escritorio (boton derecho sobre el escritorio – crear lanzador) y poner ese path donde pone comando: desde ese momento nos saldrá el icono en el escritorio y al pincharlo se ejecutará el JGR directamente.

Para que funcione correctamente la ayuda hay que instalar además el paquete r-base-html. No es un paquete de R como el base o el graphics que se instala desde R. Se instala con:

sudo apt-get install r-base-html

o desde Synaptic.

por cierto, también hay un JGR para windos.

Anuncios

5 pensamientos en “Acerca de… Un GUI hecho en Java para R

  1. Hola.

    Muchas gracias por su comentario… el primero de alguien a quien no conozco.
    Espero que le sea útil. Espero su opinion una vez empiece a usarlo.

    Saludos.

  2. Hola.
    Últimamente he tenido problemas con el JGR… bueno, reconozco que no lo he usado demasiado y a la hora de volverlo a usar no funcionaba correctamente.
    He vuelto a seguir las instrucciones del sitio:
    Actualizar el R:
    sudo apt-get update
    sudo apt-get install r-base-dev r-recommended

    Instalar Java
    sudo apt-get install sun-java6-jdk
    Presentarlos
    sudo R CMD javareconf
    Instalar JGR
    sudo R
    install.packages(‘JGR’)

    En este punto me daba un error, os lo pego todo a continuación por si alguien puede sacar conclusiones de esto, yo estoy bastante confuso:
    Warning in install.packages(“JGR”) :

    argument ‘lib’ is missing: using ‘/home/instalacion/R/i486-pc-linux-gnu-library/2.8’

    — Please select a CRAN mirror for use in this session —

    Loading Tcl/Tk interface … done

    probando la URL ‘http://cran.rakanu.com/src/contrib/JGR_1.6-2.tar.gz’

    Content type ‘application/x-gzip’ length 428978 bytes (418 Kb)

    URL abierta

    ==================================================

    downloaded 418 Kb

    * Installing *source* package ‘JGR’ …

    ** R

    ** inst

    ** preparing package for lazy loading

    Loading required package: rJava

    Loading required package: JavaGD

    Error in dyn.load(file, DLLpath = DLLpath, …) :

    unable to load shared library ‘/usr/local/lib/R/site-library/JavaGD/libs/JavaGD.so’:

    /usr/local/lib/R/site-library/JavaGD/libs/JavaGD.so: undefined symbol: Rf_addDevice

    Error: package ‘JavaGD’ could not be loaded

    Execution halted

    ERROR: lazy loading failed for package ‘JGR’

    ** Removing ‘/home/instalacion/R/i486-pc-linux-gnu-library/2.8/JGR’

    The downloaded packages are in

    /tmp/RtmpNfg0VA/downloaded_packages

    Warning message:

    In install.packages(“JGR”) :

    installation of package ‘JGR’ had non-zero exit status

    Lo que yo he hecho para solucionarlo es intentar cargr JavaGD directamente, y parece que ha funcionado:

    install.packages(“JavaGD”)

    Warning in install.packages(“JavaGD”) :

    argument ‘lib’ is missing: using ‘/home/instalacion/R/i486-pc-linux-gnu-library/2.8’

    probando la URL ‘http://cran.rakanu.com/src/contrib/JavaGD_0.5-2.tar.gz’

    Content type ‘application/x-gzip’ length 87076 bytes (85 Kb)

    URL abierta

    ==================================================

    downloaded 85 Kb

    * Installing *source* package ‘JavaGD’ …

    checking for gcc… gcc -std=gnu99

    checking for C compiler default output file name… a.out

    checking whether the C compiler works… yes

    checking whether we are cross compiling… no

    checking for suffix of executables…

    checking for suffix of object files… o

    checking whether we are using the GNU C compiler… yes

    checking whether gcc -std=gnu99 accepts -g… yes

    checking for gcc -std=gnu99 option to accept ISO C89… none needed

    checking how to run the C preprocessor… gcc -std=gnu99 -E

    checking for grep that handles long lines and -e… /bin/grep

    checking for egrep… /bin/grep -E

    checking for ANSI C header files… yes

    checking for sys/wait.h that is POSIX.1 compatible… yes

    checking for sys/types.h… yes

    checking for sys/stat.h… yes

    checking for stdlib.h… yes

    checking for string.h… yes

    checking for memory.h… yes

    checking for strings.h… yes

    checking for inttypes.h… yes

    checking for stdint.h… yes

    checking for unistd.h… yes

    checking for string.h… (cached) yes

    checking sys/time.h usability… yes

    checking sys/time.h presence… yes

    checking for sys/time.h… yes

    checking for unistd.h… (cached) yes

    checking for an ANSI C-conforming const… yes

    checking whether time.h and sys/time.h may both be included… yes

    checking for stdlib.h… (cached) yes

    checking for GNU libc compatible malloc… yes

    checking return type of signal handlers… void

    checking for memset… yes

    checking for mkdir… yes

    checking for rmdir… yes

    checking for select… yes

    checking for socket… yes

    checking Java support in R… present:

    interpreter : ‘/usr/bin/java’

    cpp flags : ‘-I/usr/lib/jvm/java-6-sun-1.6.0.03/jre/../include -I/usr/lib/jvm/java-6-sun-1.6.0.03/jre/../include/linux’

    java libs : ‘-L/usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/i386/client -L/usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/i386 -L/usr/lib/jvm/java-6-sun-1.6.0.03/jre/../lib/i386 -L -L/usr/java/packages/lib/i386 -L/lib -L/usr/lib -ljvm’

    checking whether JNI programs can be compiled… yes

    configure: creating ./config.status

    config.status: creating src/Makevars

    config.status: creating R/zzz.R

    config.status: creating src/config.h

    ** libs

    gcc -std=gnu99 -I/usr/share/R/include -I/usr/lib/jvm/java-6-sun-1.6.0.03/jre/../include -I/usr/lib/jvm/java-6-sun-1.6.0.03/jre/../include/linux -Iinclude -fpic -g -O2 -c javaGD.c -o javaGD.o

    gcc -std=gnu99 -I/usr/share/R/include -I/usr/lib/jvm/java-6-sun-1.6.0.03/jre/../include -I/usr/lib/jvm/java-6-sun-1.6.0.03/jre/../include/linux -Iinclude -fpic -g -O2 -c jGDtalk.c -o jGDtalk.o

    gcc -std=gnu99 -I/usr/share/R/include -I/usr/lib/jvm/java-6-sun-1.6.0.03/jre/../include -I/usr/lib/jvm/java-6-sun-1.6.0.03/jre/../include/linux -Iinclude -fpic -g -O2 -c s2u.c -o s2u.o

    gcc -std=gnu99 -shared -o JavaGD.so javaGD.o jGDtalk.o s2u.o -L/usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/i386/client -L/usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/i386 -L/usr/lib/jvm/java-6-sun-1.6.0.03/jre/../lib/i386 -L -L/usr/java/packages/lib/i386 -L/lib -L/usr/lib -ljvm -L/usr/lib/R/lib -lR

    ** R

    ** inst

    ** preparing package for lazy loading

    ** help

    >>> Building/Updating help pages for package ‘JavaGD’

    Formats: text html latex example

    JavaGD text html latex example

    ** building package indices …

    * DONE (JavaGD)

    The downloaded packages are in

    /tmp/RtmpNfg0VA/downloaded_packages
    fa

    Como veis parece que funciona, da un error al principio, pero luego lo arregla el solo… creo.
    A partir de aquí ya seguimos con las instrucciones de la web de JGR

    library(JGR)
    JGR()

    Y ya está.
    De momento funciona.

  3. Pingback: Acerca de… RStudio « Acerca de…

  4. Pingback: Acerca de… rkward. « Acerca de…

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s