R: diferència entre les revisions
Línia 60: | Línia 60: | ||
Al igual que el sistema base, cualquier paquete de R puede instalarse desde Synaptic buscando la palabra CRAN. | Al igual que el sistema base, cualquier paquete de R puede instalarse desde Synaptic buscando la palabra CRAN. | ||
Dado que el mismo R tiene funciones de manejo de paquetes para instalar directamente desde CRAN, un sistema alternativo al anterior es | |||
: | |||
> install.packages('nombrepaquete') | > install.packages('nombrepaquete') | ||
Línia 66: | Línia 67: | ||
/usr/lib/R/library/''nombrepaquete'' | /usr/lib/R/library/''nombrepaquete'' | ||
También se pueden instalar paquetes manualmente descomprimiendo los ficheros .zip en dicha ubicación. | |||
=== Cargado de librerías === | === Cargado de librerías === |
Revisió del 06:03, 31 maig 2005
| ||
Area: | Estadística | |
Web del proyecto: | r-project |
Introducción
R es un software de análisis estadístico de código abierto basado en el lenguaje S, desarrollado a principio de los años 90. El programa S-Plus utiliza el mismo lenguaje S, pero se trata de un software propietario.
Instalación y ejecución
Sistemas M$
Los binarios para la instalación en sistemas M$ se pueden descargar desde aquí. Para entrar al programa hay que ejecutar el acceso directo a Rgui.exe situado en el menú inicio.
Sistemas GNU/Linux
En Ubuntu la instalación se realiza mediante la aplicación Synaptic, buscando la librería r-base y aceptando la instalación de todas las librerías propuestas por el programa para resolver las dependencias. El programa se ejecuta desde una ventana Terminal tecleando simplemente
>R
Nota: ">" es el simbolo del sistema. asi que no hay que teclearlo
Una interfaz gráfica (similar al Rgui disponible para sistemas M$) es r-gnome, se instala desde Synaptic; para lanzar R con la interfaz grafica r-gnome debemos escribir en una ventana Terminal:
>R --gui=GNOME
Lenguaje encarado a objetos
Los lenguajes estadísticos clásicos (SAS, Stata, SPSS) parten de unos datos a los que se aplican distintos procedimientos para obtener unos resultados.
R no actua de la misma forma. En R existen los denominados objetos, sobre los que se aplican funciones para transformarlos en otros objetos, sobre quienes, a su vez, pueden aplicarse nuevas funciones para obtener nuevos objetos y asi sucesivamente.
Por lo tanto en R no existen propiamente datos y resultados, sino distintos tipos de objetos y una colección de operadores y funciones para modificarlos.
Tipos de objetos
y como definirlos
Convenciones básicas de la sintaxis
- Las mayúsculas y minúsculas representan distintos caracteres.
- Los espacios no representan nada y R los ignora.
- Los missings se representan por las siglas NA.
- El signo # provoca que la linea no se evalue, y por lo tanto permite realizar comentarios.
- Los parentesis () sirven para especificar los argumentos de las funciones.
- Los corchetes [] sirven para especificar una posición dentro de un objeto.
- El signo $ se usa para referirse a una parte concreta y diferenciada de un objeto.
- Para asignar objetos se utiliza la combinación <-
El sistema de librerías
Una librería o paquete es un conjunto de funciones sobre una temática común. El sistema R-base trae las librerías diseñadas por el núcleo central de desarrolladores (core). Sin embargo, el modelo descentralizado de producción de R conlleva que muchas funciones interesantes no se instalen con el paquete básico sino que estén contenidas en paquetes o librerías externas que hay que instalar por separado. Aunque son descarganles desde muchos sitios de internet, se recomienda su descarga desde el repositorio Comprehensive R Archive Network (CRAN) porque se garantiza que su funcionamiento ha sido revisado y aprobado por el núcleo de desarrolladores.
Instalación de librerias en sistemas M$
Desde el programa (Rgui) existe un menú para instalar paquetes directamente desde el repositorio CRAN sin tenerlos que descargar previamente de forma manual. También se pueden instalar paquetes a partir de ficheros .zip a través del menú.
Instalación de librerias en sistemas GNU/Linux
Al igual que el sistema base, cualquier paquete de R puede instalarse desde Synaptic buscando la palabra CRAN.
Dado que el mismo R tiene funciones de manejo de paquetes para instalar directamente desde CRAN, un sistema alternativo al anterior es
> install.packages('nombrepaquete')
Usando los métodos mencionados, los paquetes se guardaran automaticamente en la ubicación:
/usr/lib/R/library/nombrepaquete
También se pueden instalar paquetes manualmente descomprimiendo los ficheros .zip en dicha ubicación.
Cargado de librerías
Cuando se inicia R, sólo las funciones contenidas en determinadas librerías del núcleo básico están disponibles para ser utilizadas. Incluso algunas librerías del núcleo básico no están cargadas al iniciar para ahorrar recursos. Para cargar una librería, hay que utilizar la función library(). Por ejemplo para cargar la librería 'survival' (para el análisis de supervivencia), que se instala con el paquete básico pero no se carga al inicio, habría que escribir:
library(survival)
Algunas librerías útiles
Las siguientes librerías no se cargan directamente al iniciar R, y contienen funciones que pueden resultar interesantes. Las librerías marcadas con (*) no están disponibles en el módulo base y deben instalarse desde el CRAN:
- foreign: Permite importar bases de datos en otros formatos (SAS, Stata, Excel, SPSS, etc.).
- survival: Funciones de análisis de supervivencia.
- car *: Recodificación de variables.
- xtable *: Permite exportar tablas a formato Latex.
- Rcmdr *: Presenta una interfaz gráfica más amigable para la edición de datos y ejecución de comandos desde menús. Puede ser útil para nuevos usuarios para facilitar la curva de aprendizaje, pero disminuye la gran flexibilidad del software.
El paquete Traba
En el Trabachat se han desarrollado un conjunto de funciones agrupadas en el paquete Traba. Disponible en el Trabachat en formato .zip.
Editores de sintaxis
El programa R (a diferencia de SPSS, SAS o Stata) no cuenta con una ventana para escribir la sintaxis.
Cualquier editor de textos, como el Notepad de M$, sirve para almacenar los comandos, pero es recomendable trabajar con otros editores específicos que permitan, entre otros
- Colorear la sintaxis para una fácil detección de errores
- Enviar las instrucciones directamente para ser evaluadas en R (evitando asi tener que copiar/pegar cada instrucción desde el editor)
WinEdt
WinEdt es un software propietario, disponible sólo para plataformas M$, que permite la edición de distintos tipos de lenguajes, entre ellos Stata y R. Para poder utilizar el editor debe disponerse de licencia, y descargarse la librería de R RWinEdt, disponible en el CRAN.
WinEdt permite colorear la sintaxis de R, marcando las funciones correctas, y coloreando los paréntesis para evitar errores de apertura y cierre. Así mismo permite mandar una región de la sintaxis para su evaluación en R.
GNU/Emacs y XEmacs
Emacs es un anciano y robusto software para la edición de distintos lenguajes, con la posibilidad de ejecutar distintos programas en sus buffers lo cual permite evaluar directamente las expresiones dentro del propio programa. Por lo tanto Emacs es mucho más que un editor y coloreador de sintaxis, sino que en algunos casos es poco menos que un estilo de vida.
Para la edición de lenguajes estadísticos debe usarse un modo de Emacs llamado Emacs Speaks Statistics (ESS).
El desarrollo de Emacs se ha dividido en dos ramas: XEmacs y GNU Emacs.
Para sistemas M$ es aconsejable la instalación de XEmacs, cuyo instalador binario puede descargarse directamente desde la página web del proyecto, pues permite incorporar directamente cualquier modo, entre ellos Emacs Speaks Statistics (ESS).
En sistemas GNU/Linux se aconseja la instalación de GNU Emacs por su mayor facilidad de integración con R en estos sistemas. En Ubuntu y a través de Synaptic se puede instalar fácilmente tanto GNU Emacs como el modo Emacs Speaks Statistics (ESS), sin necesidad de mayores configuraciones.
Introducción de datos
En ocasiones es útil prepararse unos datos sencillos para provar distintas funciones antes de aplicarlas sobre nuestra base de datos. El siguiente código es un ejemplo de como realizar esta tarea:
c(1,2,3,4,5)
La instrucción anterior genera un vector (se puede entender como una variable numérica en el lenguaje clásico) que contiene 5 números (1 a 5) mediante la instrucción c, pero lo único que hará es imprimir en pantalla esta secuencia. Para guardar el vector como un objeto debemos escribir:
prueba<-c(1,2,3,4,5)
Ahora tenemos un objeto llamado prueba que contiene el vector de 5 números.
Una forma alternativa de obtener el mismo vector prueba es mediante una secuencia (sequence) de valores:
prueba<-seq(1:5)
Si por ejemplo ejecutamos:
prueba2<-prueba*2
obtendremos un objeto llamado prueba2 que corresponderá a un vector con los valores: 2, 4, 6, 8, 10.
La expresión:
prueba3<-prueba*prueba2
generará el vector prueba3 con los valores 2, 8, 18, 32, 50.
Para extraer un valor concreto de un vector, por ejemplo el que esté en tercera posición:
prueba3[3]
devolverá por pantalla el valor 18. Lógicamente este valor se podría haber asignado a un objeto.
Si en lugar de un vector queremos generar una matriz, es decir un vector multidimensional, debemos usar las siguientes funciones:
- column bind
prueba4<-cbind(rep(72,5),c(2,7,9,3,5))
generará la siguiente matriz por la unión de las dos columnas (cbind) especificadas: rep(72,5) (repite 5 veces el valor 72) y c(2,7,9,3,5)
72 | 2 |
72 | 7 |
72 | 9 |
72 | 3 |
72 | 5 |
Si queremos unir filas en lugar de columnas:
- row bind
prueba5<-rbind(seq(1:5),c(2,7,9,3,5))
1 | 2 | 3 | 4 | 5 |
2 | 7 | 9 | 3 | 5 |
Para recuperar un valor concreto de la matriz anterior, debe especificarse, como es habitual, dicha posición entre corchetes. En primer lugar se marca la posición de la fila y en segunda lugar la posición de la columna.
prueba6<-prueba5[2,3]
Con la función anterior, asignamos el valor 9 al objeto prueba6.
La función:
prueba7<-prueba5[2,3:5]
asignará al objeto prueba7 un vector con los valores 9, 3, 5, correspondientes a las columnas 3, 4 y 5 de la segunda fila.