Introducción al entorno R: instalación y uso básico. Librerías.
Conceptos básicos del lenguaje R: instrucciones sencillas, scripts y funciones sencillas.
Librería RCommander y técnicas de análisis estadístico (I).
Librería RCommander y técnicas de análisis estadístico (II).
Gráficos en R: el comando plot() y librerías específicas. Introducción a la interfaz Rstudio.
1. Introducción al entorno R: instalación y uso básico. Librerías.
¿Qué es R (y qué es lo que no es)? (I)
R es un entorno de libre acceso para computación estadística y gráficos así como para programación. Tiene una serie de características que lo hacen bastante asequible cuando empezamos a trabajar por primera vez con él.
Utiliza un lenguaje muy bien desarrollado pero simple.
Su funcionalidad es la de un intérprete de comandos (se ejecutan las instrucciones a medida que las introducimos) y la de un lenguaje de programación (se puede realizar un script o conjunto de instrucciones a modo de programa).
La instalación por primera vez proporciona un entorno básico de R casi sin ninguna dificultad.
Permite un rápido desarrollo de nuevas herramientas para resolver problemas.
Estos desarrollos se distribuyen en forma de librerías que cualquier usuario puede descargar e instalar para personalizar su propio entorno de R.
R no es un lenguaje de programación que permita realizar aplicaciones ejecutables. Sin embargo, se pueden programar interfaces gráficas para facilitar el uso de los programas a los usuarios pero es preciso que estos tengan instalado R.
¿Qué es R (y qué es lo que no es)? (y II)
¿En qué me puede ayudar?
Tenemos miedo a utilizar esto y luego venga otra cosa que lo sustituya….
Sin embargo, si lo pensamos tranquilamente, muchas de las cosas que necesitamos hacer habitualmente (gráficas, problemas de estadística, etc..) no necesitan de un software complicado (SPSS, SAS, etc..).
Podemos utilizar R para resolver de forma más o menos fácil (depende de lo que hayamos entendido en clase de estadística) muchos de estos problemas. A medida que uno desarrolle trabajos de más dificultad (trabajos, proyectos fin de grado o máster, investigación, etc..) R nos será de mayor utilidad.
¿Por donde empezamos? R Base y librerías o paquetes. Rstudio
En principio, se comienza descargando el paquete básico de R (Base R)
El paquete base viene con un conjunto de herramientas básicas de gestión de datos, análisis y funciones gráficas.
A medida que uno necesita más herramientas, se pueden descargar e instalar entre las +4000 librerías que hay en CRAN las que puedan sernos de ayuda.
Una librería que utilizaremos en este curso es Rcmdr (RCommander). La instalaremos desde el terminal de comandos de R.
R se puede utilizar básicamente con lo que tenemos en la instalación base (terminal de comandos) pero podemos instalar, de forma adicional, algún otro entorno gráfico que facilite su uso (Rstudio).
Ir a www.rstudio.org(http://www.rstudio.org) y descarga la versión de RStudio para tu OS.
Ya tengo esto instalado….
Empezaremos adquiriendo conocimientos básicos de R.
Se trata de iniciarse en el manejo de R (comienza como exploreR para llegar a ser un useR). Hay excelentes tutoriales en internet para mejorar aprendizaje.
Por ejemplo, codeschool tiene este tutorial online R para ensayar con R solo con el navegador, sin necesidad de instalar nada.
2. Conceptos básicos del lenguaje R: instrucciones sencillas, scripts y funciones sencillas.
La consola de R. Operaciones elementales
El código R puede ser introducido directamente en la consola de comandos o mediante un script. Por ejemplo, se pueden realizar operaciones aritméticas elementales
# operaciones básicas7+37*37/37%%37/0
Observar que los comandos están separados con un salto de línea (o también con ;). Sin embargo, si el comando comienza con el caracter # esa línea no se ejecuta (p.e., apropiado para añadir comentarios explicativo)
Todo en R (variables, vectores, funciones, gráficos, fórmulas, …) son objetos.
La consola de R. Operaciones elementales (II)
El objeto más elemental es una variable. Para crear una variable (x) debemos asignar un valor (número, palabra, …) mediante <- or = . Se recomienda <- .
x <-3
Tengamos en cuenta que R es sensible a mayúsculas: x es diferente de X
Una reasignación sobreescribe el contenido de la variable
x <- "ahora x es una cadena."
x
x <-c(3,4,5,6,7,8) # c() combina valores en un vector.
x
Acceder a elementos de un vector x con x[n]
x
x[3:6] # elementos 3,4,5,6
x[c(1,3,6)] # elts 1,3 y 6
x[-c(1,3,6)] # todos elts excepto 1,3 y 6
Ejercicio 1
crear un vector x con valores 0, 3, 6, 9, 12, 15, 18
crear un vector y con las palabras {“mis”,“números”,“favoritos”,“son”}
crear un vector z con todos los elementos de y los 2 últimos elementos de x
ejecutar typeof(x), typeof(y) y typeof(z)
crear un vector w con valores el logaritmo de cada elemento de x
Vectores
Veamos algunos ejemplos con vectores
x <-c(1:3)
x+1#suma 1 a cada elemento del vector
x/2#divide por 2 cada elemento del vectorlength(x) # número de elementos del vectormax(x)
min(x)
sum(x) #suma todos los elementos del vectorlog(x) #aplica la función log() a cada elemento del vector
Observar que estamos utilizando las primeras funciones de R (length, max, min, …). Si se desea obtener la ayuda en particular de una función debemos escribir ? seguido del nombre de la función
?sum
?mean
Vectores (II)
Ahora, veamos como son las operaciones entre vectores
x <-c(1:3)
y <-4:6# también se pueden generar secuencias numéricas sin usar c()
x +y
x <-1:4
x +y # R da un warning si se suman de diferente longitud
x <-1:3
y <-4:6
x *y # producto elemento a elemento
Supongamos que queremos filtrar aquellas filas del dataset ‘datos’ que verifican una condición determinada (p.e., las filas tales que ‘aula’ sea igual a 2 y las filas con ‘sexo’ igual a 2).
datos_filt1<-subset(datos,aula==2) # filas del aula 2
datos_filt1
# Otra forma:
cond<-datos$aula==2
datos_filt1<-datos[cond,] # filas del aula 2
datos_filt1
datos_filt2<-subset(datos,sexo==1) # filas del sexo 1
datos_filt2
# Otra forma:
cond<-datos$sexo==1
datos_filt2<-datos[cond,] # filas del sexo 1
datos_filt2
Filtrar conjuntos de registros en un data.frame
Si queremos combinar condiciones utilizamos los operadores & (AND) y | (OR). Por ejemplo:
datos_filt3<-subset(datos,aula==1 &sexo==2) # filas con aula=1 y sexo=2# Otra forma:
cond<-(datos$aula==1 &datos$sexo==2)
datos_filt3<-datos[cond,] # filas con aula=1 y sexo=2
datos_filt4<-subset(datos,aula==1 |sexo==2) # filas con aula=1 o sexo=2# Otra forma:
cond<-(datos$aula==1 |datos$sexo==2)
datos_filt4<-datos[cond,] # filas con aula=1 o sexo=2
datos_filt4
Filtro por una variable: Filtrar las ‘mascotas’ de tipo ‘gato’. ¿Cuántos animales hay?
Suma agrupada: Hallar la suma de todos los pesos de cada animal (animal=‘perro’, animal=‘gato’,animal=‘mono’). ¿Cuál es el máximo de las sumas agrupadas por animal?
Media de una variable por grupos: Hallar el peso medio de cada animal.
Resúmenes por filas y columnas
Se pueden sumar los valores de las columnas o las filas con las siguientes instrucciones
colSums(datos)
rowSums(datos) #sólo funciona si todas las variables son numéricas
Sin embargo, a veces queremos sumar los valores de una variable agrupados de acuerdo a una variable categórica. Por ejemplo, sumar todas las horas para cada aula o cada sexo en ‘datos’.
by(datos[,"horas"],datos[,"aula"],sum) # suma las horas para cada aulaby(datos[,3],datos[,1],sum) # cuidado con esta forma que puede dar lugar a errores
En R puede haber múltiples instrucciones para sumar por grupos.
aggregate(horas~aula,sum,data=datos) # utilizando una fórmula
Ejercicio 5
Suma agrupada: Hallar la suma de todos los pesos de cada animal (animal=‘perro’, animal=‘gato’,animal=‘mono’).
Media de una variable por grupos: Hallar el peso medio de cada animal.