¿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.
Al igual que usted, yo también intento descubrir esos secretos de R… Gracias por esta entrada de su blog que me dio una mano con R en Ubuntu.
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.
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.
Pingback: Acerca de… RStudio « Acerca de…
Pingback: Acerca de… rkward. « Acerca de…