Primera sesión

Las estadísticas más básicas que debemos conocer de nuestros datos son las relativas a medidas de tendencia central y de dispersión. La función summary() nos proporciona algunas de ellas. Por ejemplo, summary(cars) nos indica lo siguiente

speed 		 dist

Min. : 4.0 Min. : 2.00
1st Qu.:12.0 1st Qu.: 26.00
Median :15.0 Median : 36.00
Mean :15.4 Mean : 42.98
3rd Qu.:19.0 3rd Qu.: 56.00
Max. :25.0 Max. :120.00
es decir, proporciona los valores mínimo y máximo de cada variable así como la media aritmética y los tres cuartiles.

Como veremos, con summary() podemos conocer algunos estadísticos básicos. Las funciones mean(), median(), max(), min(), sum() y var() aplicadas a una varible proporcionarán por separado la media aritmética, mediana, valor máximo, mínimo, suma y varianza respectivamente.
Sin embargo, si nos limitamos a teclear estas funciones, R sólo presentará el valor del estadístico en la pantalla. Si deseamos almacenar alguno de estos valores para trabajar con ellos posteriormente (o por el motivo que sea) será preciso guardarlo en nuestro espacio de trabajo. Para ello debemos hacer una de las operaciones más básicas en R, que es la asignación.
Llamamos asignación al proceso por el cual almacenamos en un objeto el resultado obtenido a través de una función de R. El objeto se incorporará automáticamente al espacio de trabajo. Para llevar a cabo la asignación debemos decidir en primer lugar el nombre que queremos dar al objeto. Una vez hecho esto, podemos pasar a teclear en el terminal la orden. Por ejemplo, si quisiéramos almacenar la media de la distancia de frenado, podríamos teclear lo siguiente
media.frenado<-mean(cars$dist)
Como ya sabemos, mean(cars$dist) le dice a R que obtenga la media de la variable dist del data.frame cars. La combinación de caracteres < (menor que) y - (guión) indica que el resultado de la función debe asignarse a...3.1 Finalmente media.frenado es el nombre que hemos querido dar en este caso al objeto que almacenará la media.
Si hacemos ls() veremos que, efectivamente, el nuevo objeto se ha incorporado al espacio de trabajo. A partir de ahora, para conocer el valor de ese estadistico deberemos teclear, símplemente, media.frenado y, lo que es más importante, podré manipular el valor de la media en operaciones algebraicas. Por ejemplo, si desease dividir esa media entre tres, teclearía media.frenado/3. El proceso sería el siguiente
media.frenado<-mean(cars$dist)
media.frenado
[1] 42.98
media.frenado/3
[1] 14.32667
Como puedes imaginar, el último valor no se almacenará en el espacio de trabajo puesto que no ha sido asignado a ningún objeto. Sin embargo, si consideras que sería conveniente, ya sabes cómo puedes hacerlo muy rápidamente y casi sin teclear nada. Sólo debes recuperar con la tecla flecha-arriba la línea en la que introdujiste la orden de cálculo (en este caso la última), desplazarte en ella con las flechas-derecha-izquierda hasta el comienzo de la línea y teclear el nombre que quieras dar al objeto seguido del operador de asignación <-.
La asignación es, como ya hemos dicho, una operación básica en R. En una sesión de trabajo pueden realizarse multitud de asignaciones. Por ese motivo es muy recomendable que elijamos nombres adecuados para los objetos. Es muy conveniente que el nombre nos recuerde inmediatamente qué es lo que almacena el objeto, pero tampoco debe ser excesivamente largo. La experiencia nos irá ayudando en la elección de nombres.
Cuando hacemos ls() y vemos que hay objetos que hemos almacenado, pero que no nos interesan, podemos quitarlos del espacio de trabajo. Para eso está la función rm(). Así, rm(media.frenado) haría desaparecer el objeto media.frenado. Si queremos quitar varios objetos, no tenemos más que teclear sus nombres dentro de la función separados por comas. Así, rm(media.frenado,cars) quitaría esos dos objetos que, por el momento, deben ser todo lo que tenemos en el espacio de trabajo.
Podemos comprobarlo con ls():
ls()
[1] ``cars'' ``media.frenado''
rm(cars,media.frenado)
ls()
character(0)
Ese character(0) nos dice que el espacio de trabajo está vacío. De momento, volveremos a cargar el archivo cars.

Aunque estemos en los primeros pasos, seguramente también nos interesará analizar la distribución de frecuencias de las variables. Para generar un histograma de la variable speed deberemos teclear
hist(cars$speed) lo que viene a traducirse por ``coge el data.frame cars, selecciona la variable speed y haz el histograma con las opciones que tengas por defecto''. El resultado es el que vemos en la Figura [*]. 3.2.

Figura: Hacer histogramas con hist()
Image histograma
Vemos que al pulsar la tecla Intro se abre una pantalla nueva que R llama Device 2 y dice que está activa.
Si quiero ver el histograma, pero ahora de la variable dist, tengo dos opciones: presentarlo en la pantalla que acaba de abrirse (en cuyo caso desaparecerá el histograma anterior), o abrir una nueva pantalla. Para ello deberemos teclear, en Linux, X11() y, en Windows, windows(). En ese momento se abrirá y activará automáticamente un nuevo dispositivo. Cualquier función gráfica que introduzcamos en R se representará en esa nueva pantalla.
Abrir dispositivos de esta manera es una de las posibilidades que ofrece R para ver varios gráficos de forma simultanea. Podemos conocer en cualquier momento cuántos dispositivos tenemos abiertos tecleando dev.list(). Nos aparecerá por pantalla una lista que nos informa del tipo de dispositivo, y el número que tiene asignado. El último dispositivo abierto será siempre el que esté en estado activo a no ser que activemos otro. Esto podemos hacerlo con la función dev.set(). Tecleando dev.set(which=3) activaremos inmediatamente el dispositivo número 3.
Si queremos cerrar un dispositivo, podemos hacerlo con el ratón, pulsando sobre la X de la esquina superior derecha. Sin embargo, hay dispositivos, como el postscript (que veremos más adelante), que no presenta ventana alguna. Para cerrarlo en ese caso debemos teclear, por ejemplo, dev.off(4) siendo en este caso 4 el número del dispositivo a cerrar.

En muchos casos también vamos a interesarnos por la relación existente entre las distintas variables. Una aproximación gráfica la obtendremos mediante la función plot(). Para ver el gráfico dispersión de speed frente a dist deberemos teclear plot(cars$speed,cars$dist) lo que genera la Figura [*]

Figura: Diagrama de dispersión con la función plot
Image cars
2007-02-12