viernes, 21 de junio de 2013

R- Ejecutar un script redactado con Notepad++

La potencia de R lo hace un programa muy atractivo. Uno de sus inconvenientes, provocado por su implantación de tipo lenguaje interpretado o interpretación pura, que, como JavaScript o PHP, no requiere de un compilador para crear su ejecutable, sino que cada comando es evaluado, y si es correcto, ejecutado. Sino, lanza un mensaje de error y se interrumpe el programa
Esto resulta especialmente molesto en caso de tener un programa de tamaño elevado (por ejemplo, con más de 60 lineas de código. Una experiencia personal, bastante funesta, fue el redactar un trabajo de clase para la materia Estadística Básica en la que nos introducían al uso de R con 70 lineas de código R para resolver seis problemas relacionados con métodos estadísticos, cuya depuración se hizo instrucción a instrucción,volviendo a repetir cada comando en caso de error). Si bien es cierto que la memoria del programa permite repetir tantas veces una función o volver a editarla pulsando repetidamente la flecha “arriba” de teclado, en ocasiones se vuelve tedioso. Un forma agradable de trabajar es usar Notepad++. 

Este programa es en principio similar al Bloc de notas de Windows; es un generador de texto plano, pero permite la posibilidad de redactar un archivo con código fuente de un lenguaje de programación determinado, marcando las funciones especiales, las palabras reservadas, las cifras y valores numéricos y las sangrías. En [1] se puede obtener información sobre Notepad++ y su enlace para descargarlo.

Podemos redactar el programa con Notepad++. Una vez abierto, se selecciona en la opción de Lenguajes la etiqueta R. Redactamos un pequeño programa, que se basará en la definición de asociación de un valor a una variable, y posteriormente obtenerlo por pantalla. Vemos cómo aparecen señaladas en colores, si están bien redactadas, las palabras reservadas del lenguaje. Después lo modificaremos para obtener otro string con la función sub(cadena_original, cadena_nueva, string).



Programa a usar desde Notepad++. Código e imagen por el autor.

Una vez hecho, lo guardamos con extensión .r y lo ejecutamos en la GUI de R. Una vez abierto R, en la barra de herramientas, pinchamos en la pestaña Archivo y hacemos clic en Abrir script... (para los usuarios de habla hispana, File y Open script en las versiones originales, donde las etiquetas estaban en inglés) Se abre un cómodo buscador que nos permitirá localizar el código fuente recientemente hecho y al seleccionarlo, se mostrará este en el programa R desde su editor, cómodamente ejecutable.



El programa en el editor de R GUI. Imagen y código por el autor.

Así pues, si se sigue estos pasos con el ejemplo propuesto, un programa que saca por consola el mensaje Hola mundo desde R GUI! Lo modifica y saca este por pantalla (las funciones usadas y el tratamiento de los strings han sido elaborados a través de las conclusiones expuestas en [2]), obtenemos en la consola el siguiente resultado:

R version 3.0.0 (2013-04-03) -- "Masked Marvel"
Copyright (C) 2013 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64 (64-bit)

R es un software libre y viene sin GARANTIA ALGUNA.
Usted puede redistribuirlo bajo ciertas circunstancias.
Escriba 'license()' o 'licence()' para detalles de distribucion.

R es un proyecto colaborativo con muchos contribuyentes.
Escriba 'contributors()' para obtener más información y
'citation()' para saber cómo citar R o paquetes de R en publicaciones.

Escriba 'demo()' para demostraciones, 'help()' para el sistema on-line de ayuda,
o 'help.start()' para abrir el sistema de ayuda HTML con su navegador.
Escriba 'q()' para salir de R.

[Previously saved workspace restored]

> #--------------------------------------------------
> # Programa HolamundoR
> # Entrada (Teclado): Un string con la frase
> # "Holamundo desde R!"
> # Salida (Pantalla): el string y uno obtenido con 
> # sub(), que modifica el primero
> #--------------------------------------------------- 
> first <-"Hola mundo desde R GUI!"
> first
[1] "Hola mundo desde R GUI!"
> class(first)
[1] "character"
> second <-sub("R GUI","R con Notepad++",first)
> second
[1] "Hola mundo desde R con Notepad++!"

Aspecto de la consola tras las ejecución del programa usado (en azul las instrucciones). 


Referencias

[1]: Notepad++, disponible (con información) desde http://notepad-plus-plus.org/
[2]: R para Principiantes, Emmanuel Paradis. Traducción por Jorge A. Ahumada. Texto de difusión libre, extraído de http://cran.r-project.org/doc/contrib/rdebuts_es.pdf

No hay comentarios:

Publicar un comentario