[ips-AUS] [pye] R crash course

Roberto A. Vaghi roberto_vaghi en hotmail.com
Vie Nov 18 17:12:16 CET 2011


Les pego abajo el trabajito que hizo ayer Alejandro en R. Lo fui
copiando a medida que los introducía, no está 100% igual porque no usé
los mismos nombres de variables, pero los resultados coincidieron con lo
que obtuvo él y si siguen el orden deberían obtener un resultado igual.
Los comentarios agregados entre líneas son míos y deben tomarlos a su
propio riesgo...

Saludos


________________________________________________________________________

Primero, conseguir el R... http://www.r-project.org/ Hay un repositorio
para la familia Debian, agregándolo se instala y mantiene fácil
actualizado usando aptitude. Una vez instalado, abrir una consola y
escribir R (en mayúscula). Enter y estamos en el ambiente R de consola.


help.start()

Este comando abre en el Internet browser la página de ayuda de R (útil
como referencia)

library (Rcmdr)

Abre el R Commander, un GUI que permite hacer más fácil algunas tareas
en R (hay que instalar el paquete r-recommended)

library (MASS)

Importa la librería MASS, donde está definido el dataset "survey" que se
utiliza (un dataset es una colección de datos)

head(survey);

Comportamiento similar al comando "head" de bash, muestra la parte de
arriba del dataset "survey"

height.survey = survey$Height;

Crea el vector "height.survey", copiando la columna "Height" del dataset
"survey"

mean(height.survey)

Calcula y muestra (porque no se asigna a ninguna variable) la media
(mean en inglés) de la variable "height.survey". Como el vector contiene
valores "na" (Not Available o no disponibles), la media resulta en "na".
No muy útil

mean(height.survey, na.rm=TRUE)

Ahora sí... Removiendo los "na" con na.rm=TRUE, se obtiene la media de
172.3809

var(height.survey, na.rm=TRUE)
max(height.survey, na.rm=TRUE)
min(height.survey, na.rm=TRUE)

Calcula y muestra la varianza, máximo y mínimo del mismo vector
(96.9738, 200 y 150 respectivamente). No es necesario para el ejercicio
y Ale no lo hizo, pero vale como ejemplo.

height.known = na.omit(survey$Height);

Asigna a la variable "height.known" los valores distintos a NA de la
columna "Height" del dataset "survey" . Notar el uso de la función
na.omit...

n = length (height.known);

Asigna a la variable "n" el tamaño (o cantidad de elementos) del vector
antes definido. 

sigma = 9.48;

Inicializa la variable sigma al valor 9.48. Si se desea asignar un
vector (es decir, una Colección ordenada) a una variable llamada "v",
usamos la función c() ...  " v <- c(1, 2, 3)"  y ahora la variable v
contiene el vector 1  2  3

sem = simga / sqrt(n);

Asigna a la variable "sem" el resultado de dividir "simga" por la raíz
cuadrada (función "sqrt") de la variable "n". 

sem;

Muestra el valor de "sem" en pantalla. Sorpresa! No sale nada... En la
definición anterior, cometí un error de tipeo. "simga" no es lo mismo
que "sigma". Aunque la variable "simga" no estaba previamente definida,
la definición "sem = simga / sqrt(n)" no dio ningun error. Sólo que no
le asignó ningún valor a "sem" tampoco. Hay que andar con cuidado en
cómo se meten los dedos cuando se usan variables. Por suerte, los
llamados a funciones sí dan error cuando la función usada no está
definida. Ejemplo: sqtr(n) nos dará "Error: could not find function
"sqtr""

sem = sigma / sqrt(n); sem

separadas por un ";" se hace en la misma línea la asignación a "sem" y
se muestra en pantalla su valor: 0.6557453

E = qnorm (0.975)*sem; E

La función "qnorm" hace lo siguiente... Dada una probabilidad, devuelve
el número para el cual la función de distribución acumulada de una
normal estandarizada tiene dicha probabilidad. Ejemplo: qnorm(0.5) = 0.
El resultado del número cuya probabilidad acumulada es 0.975 se
multiplica por el valor de "sem", se guarda en "E" y se muestra en
pantalla: 1.285237

xbar = mean(height.known); xbar

Asigna a xbar el valor de la media del vector y lo muestra en pantalla.
172.3809, como habíamos visto antes

intervalo = xbar + c(-E, E)

Crea el vector (-E, E) y le suma a cada miembro "xbar". El resultado se
guarda en "intervalo"

intervalo

Muestra el valor del intervalo definido: (171.0956, 173.6661)

savehistory(file = "~/rconsola.txt")

savehistory("nombre_archivo") guarda todos los comandos que se
escribieron en la consola de R, en el archivo "nombre_archivo". Util
para guardar el trabajo realizado y no tener que volver a tipear. El
archivo se puede recuperar con loadhistory("nombre_archivo"). Una
observación adicional, la consola de R permite el autocompletado como el
que tiene bash, usando el "tab". Si usan algún GUI, estas comodidades
debería proveerselas el mismo...
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: https://lists.ourproject.org/pipermail/ipsaus-main/attachments/20111118/21f9c163/attachment.htm 


Más información sobre la lista de distribución Ipsaus-main