1 / 27

Sesión I

Sesión I. José Bustos 1 & Alex Mellado 2 1 Magister Estadística Aplicada, Análisis Estadístico Profesional AESpro. 2 Magister (c) Epidemiología, Departamento de Salud Pública, PUC. Lunes 18 de Julio de 2011. Descarga de R y otras más. Links de descargas

lydia
Download Presentation

Sesión I

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sesión I José Bustos1 & Alex Mellado2 1 Magister Estadística Aplicada, Análisis Estadístico Profesional AESpro. 2 Magister (c) Epidemiología, Departamento de Salud Pública, PUC. Lunes 18 de Julio de 2011

  2. Descarga de R y otras más Links de descargas http://dirichlet.mat.puc.cl/bin/windows/ # descarga de R http://cran.r-project.org # descarga de librerías http://cran.r-project.org/manuals.html # manuales (html y PDF) http://www.r-project.org/doc/bib/R-publications.html # publicaciones sobre R http://cran.r-project.org/doc/Rnews/ # noticias sobre R Tienen R instalado?

  3. Interfaz de R • En la Interfaz de R. No hay menú “colgante” para análisis estadístico! • Existe un “área de trabajo”, llamada consola, disponible para la construcción de consultas matemáticas, estadísticas y gráficas.

  4. Interfaz de R • Interfaz de S-Plus. Hay menú “colgante” para análisis estadístico, pero pagas por eso.

  5. Interfaz de R: Uso del menú colgante de R • archivo|nuevo script # abre scrip para almacenar comandos (archivo .R) • archivo|abrir script # abre scrip guardado por el usuario (archivo .R) • archivo|guardar área trabajo # guarda sesión activa de R (archivo .Rdata) • archivo|cargar area de trabajo # carga sesión desde archivo .R (archivo .Rdata) • save.image() # guarda sesión activa en archivo ".Rdata“ • save(x, y, file = "xy.Rdata") # guarda objetos específicos en archivo "xy.Rdata“ • load(".RData") # carga sesión por defecto • paquetes|instalar paquetes a partir de zip local # igual a install.packages(“package") • editar|editor de datos # permite editar dataframe en una planilla tipo Excel • > fix(datos) # igual al comando anterior • archivo|salir # salir de R • > q() # salir de R

  6. Uso de Scripts • Un “script” es un editor de comandos de R (se abre con Archivo|nuevo script). • Use el comando Ctrl-R para ejecutar un comando. Use Ctrl-S para guardar el archivo en disco (en un archivo con extensión .R). • Los comandos de uso frecuente pueden guardarse en un archivo .R y ejecutarlo con Archivo|abrir script al iniciar la sesión de R. También se puede usar el block de notas de Windows para escribir archivos de comandos (y ejecutarlos en R usando copy/paste).

  7. Historial de comandos • Dado que los comandos en R son relativamente complicados, es conveniente saber manejar la “historia de comandos” dados en una sesión. > savehistory() # guarda comandos tipeados en R > loadhistory() # recupera comandos (.Rhistory) Menú: archivo|guardar histórico # igual a savehistory() Menú: archivo|cargar histórico # igual a loadhistory() > history() # muestra historia de comandos • Los comandos se recuperan con las flechas up y down del teclado. Pueden ser editados, copiados y pegados en la línea de comandos de R. • Si se quiere almacenar un conjunto específico de comandos se debe usar un script.

  8. Interfaz de R: uso de comandos básicos # ------------------------------------- # Comandos iniciales básicos # el signo “#” se usa para iniciar un comentario # ------------------------------------- Comandos de ayuda > help.start() # ayuda inicial de R en html > help() # menú de ayuda de R en chm > help.search("command") # busca librería donde está el comando dado

  9. Library() El comando library() muestra la librería de packages disponibles en R en el momento que instalaste R. Si se han instalado paquetes adicionales o versiones actualizadas de R, el resultado será distinto al mostrado en la ventana. Por ejemplo: el package “foreign” se encuentra disponible en esta version de R. En cambio el package “xlsReadWrite” que permite leer y escribir archivos Excel debe ser instalado.

  10. Comandos básicos: Instalación de paquetes o packages • Para usar las funciones de un package, éste debe estar disponible para su consulta. (como aquellos que vimos anteriormente ya instalados: lattice, nlme o mgcv por ejemplo). Podemos usar los siguientes comandos para ello: > search() # muestra packages activos > install.packages() # abre ventana con packages para descargar > install.packages(“packagename") # instala package no incluido en R > library(foreign) # lectura/escritura de bases dBase y SPSS > library(xlsReadWrite) # lectura/escritura de bases Excel > library(tree) # arboles de decisión > library(effects) # grafico de efectos en modelos > library(lattice) # opciones graficas avanzadas > library(nlme) # modelos de mixtos lineales y no lineales > library(mgcv) # modelos GAM (generalized additive models) > library(survival) # sobrevida noparametrica, parametrica, Cox

  11. Instalación de paquetes o packages • > install.packages() • El comando install.packages() permite instar nuevos paquetes en R (requiere tener conexión a Internet). • Las librerías son aportes hechos por colaboradores de todo el mundo (matemáticos, estadísticos, epidemiólogos, genetistas, administradores públicos, etc). • Muchas veces los packages están relacionados con algún texto, como “nlme” (modelos de efectos mixtos) que validan en su comunidad científica su utilización.

  12. Lenguaje de R (convenciones) • Una característica importante de R es que es “case sensitive”. Es decir, hace diferencia entre letras mayúsculas y minúsculas. > x, X, z1, Z1, Y.star # nombres válidos para objetos en R > c,I,q,t,s, TRUE,FALSE,pi,... # nombres reservados en R > 2+1 # evaluación de expresiones aritméticas [1] 3 > 3*(5/21 + log(3.3)) [1] 4.296053 • Operadores aritméticos básicos: +, -, *, /, ^ . • Símbolo ^ se usaparapotencias. Se puedeusar ** en vez de ^. • Para multiplicarescalares se usa *. Para multiplicar matrices se usa %*%.

  13. Lenguaje de R (convenciones) • Hay palabras específicas en R para referirse a cosas que no son número (NaN), valores ausentes (NA) y operaciones con infinito (Inf o –Inf). > 1/0 [1] Inf > -1/0 [1] -Inf > 0^Inf [1] 0 > (0:3)^Inf [1] 0 1 Inf Inf > 1/NA [1] NA > NA-NA [1] NA > Inf/NA [1] NA > NaN/NA [1] NA Operaciones con ∞ Operaciones con NA > 0/0 [1] NaN > Inf-Inf [1] NaN > Inf/Inf [1] NaN NaN, NA, Inf y –Inf tienen el mismo significado si se usan en una base de datos a ser leída por R. Operaciones con NaN

  14. Lenguaje de R (convenciones) Asignaciones usando <- o= > a <- 6 # asignación. a variable “a” se le asigna el valor 6 > 6 -> a # asignación. igual al anterior > a = 6 # asignación. no puede usarse 6=a > a <- b <- 6 # doble asignación. a y b toman el valor 6 > a <- 6; b <- a+1 # con ";" se pueden dar varios comandos por línea > texto <- "the quick brown fox jumps over the lazy dog" > texto [1] "the quick brown fox jumps over the lazy dog“ >sd • El último comando muestra que al usar el objeto definido como si fuera un comando, R muestra el contenido del objeto.

  15. Lenguaje de R (convenciones) Operadores relacionales y lógicos > 2==3 # comparación. arroja resultado TRUE o FALSE [1] FALSE > (2==3) | (4==2*2) # mezclas de comparaciones y funciones lógicas [1] TRUE • Los operadores relacionales son: • == (igual), > (mayor que), < (menor que), <= (menor o igual que), >= (mayor o igual que), != (distinto) • Los operadores lógicos son: & (and), | (or), ! (not) > !(3 != 2) # cual es el resultado de esta operacion?

  16. Lenguaje de R (convenciones) Para repetir secuencias de valores numéricos se usa el comando rep. > rep(3,8) # repite 1er nro las veces indicadas por 2do nro [1] 3 3 3 3 3 3 3 3 > rep(1:3,2) # repite 2 veces la secuencia 1:3 [1] 1 2 3 1 2 3 > rep(1:3,each=2) # repite 2 veces cada nro de la secuencia 1,2,3 [1] 1 1 2 2 3 3 > rep(1:3,each=2,times=3) # repite 3 veces el comando rep(1:3,each=2) [1] 1 1 2 2 3 3 1 1 2 2 3 3 1 1 2 2 3 3 > rep(1:3,2:4) # repite c/valor de 1:3 las veces indicada en 2:4 [1] 1 1 2 2 2 3 3 3 3 > rep(1:3,c(4,1,2)) # repite c/valor de 1:3 las veces indicada en c() [1] 1 1 1 1 2 3 3

  17. Lenguaje de R (convenciones) Generación de <= de dos niveles para un factor • El comando gl se usa para generar niveles de un factor. Aunque es similar a rep, al usar gl se genera una variable que es entendida como categórica por los modelos, lo cual no es automático con rep. > gl(4,2) # levels: 4 niveles, c/u repetido 2 veces [1] 1 1 2 2 3 3 4 4 Levels: 1 2 3 4 > gl(4,3,15) # igual al anterior hasta completar 15 datos [1] 1 1 1 2 2 2 3 3 3 4 4 4 1 1 1 Levels: 1 2 3 4 > gl(4,3,17) # igual al anterior (trunca el número de niveles) [1] 1 1 1 2 2 2 3 3 3 4 4 4 1 1 1 2 2 Levels: 1 2 3 4 > gl(3,2,12,labels=c(“a",“b",“c")) # generación de niveles character [1] a a b b c c a a b b c c Levels: a b c

  18. Lenguaje de R (convenciones) Valores ausentes • Toda variable numérica, carácter o lógica puede tomar el valor NA (notavailable). Operaciones con objetos que involucran valores NA pueden dar como resultado NA. > 1+NA [1] NA > datos <- c(1.5, 4.6, -1.1, 2.8, NA) # vector numerico con dato NA > mean(datos) [1] NA > mean(datos, na.rm=T) [1] 1.95 > letras <- c("a", "b", "b", "b", "a", NA) # vector character con dato NA > table(letras) letras a b 2 3

  19. Lenguaje de R (convenciones) Lenguaje de comandos para algunas funciones matemáticas en R

  20. Lenguaje de R: creación de objetos Manipulación de objetos (escalares, vectores o matrices) > objects() # muestra objetos activos en sesión de R > ls() # igual a objects() > rm(objeto1,objeto2,...) # remueve objetos indicados > rm(list=ls()) # remueve todos los objetos en sesión actual > a <- 20 # definición de variable numérica > saludo <- "Hello World” # definición de variable character > compara <- 3<2 # definición de variable lógica (TRUE o FALSE) > compleja <- 3+2i # definición de variable compleja > mode(saludo) # muestra el tipo (atómico) de variable [1] "character" > mode(compara) [1] "logical"

  21. Lenguaje de R: creación de objetos Manipulación de objetos (escalares, vectores o matrices) > y <- 1 # escalar y (vector de largo 1) > y <- 10:16 # vector con datos correlativos 10 al 16 > y <- c(10:16) # igual al anterior (usando “concatenate”) > y <- c(10,11,12,13,14,15,16) # igual al anterior > length(y) # largo del vector Para ver el contenido de un vector se puede dar el nombre como comando > y [1] 10 11 12 13 14 15 16 Para ver valores específicos se usa [ ] para indicar elementos a mostrar > y[2]; y[3:5] [1] 11 [1] 12 13 14

  22. Lenguaje de R: creación de objetos Manipulación de objetos (escalares, vectores o matrices) > x <- c(1, 5, 7, 9, 12, 23, 30, 38, 40, 50) > g <- c("A", "A", "A", "A", "A", "B", "B", "B", "B", "B") Mostrar valores de x según distintas condiciones sobre x, g o ambos: > x[x>=30] [1] 30 38 40 50 > x>30 # produce un efecto distinto al comando anterior [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE > x[g=="B"] #nótese que x y g son objetos aislados [1] 23 30 38 40 50 > x[g != "B” & x>7] [1] 9 12

  23. Lenguaje de R: creación de objetos Manipulación de objetos (escalares, vectores o matrices) Hay varias formas de generar secuencias numéricas en R (regulares o irregulares). > x <- 10:15 # secuencia regular: 10,11,12,13,14,15 > x <- 15:10 # secuencia regular inversa: 15,14,13,12,11,10 > x <- -1.5:4.5 # secuencia regular: -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5 > x <- -1.5:4 # secuencia regular truncada: -1.5, -0.5, 0.5, 1.5, 2.5, 3.5 > x <- seq(10, 15) # igual a x<-10:15 (secuencia regular) > x <- seq(10, 30, 5) # secuencia intervalo distinto de 1 (r: 10,15,20,25,30) > x <- seq(10, 30, 7) # secuencia truncada (r: 10,17,24) > x <- seq(1.5, 0.7, -0.2) # secuencia inversa (r: 1.5, 1.3, 1.1, 0.9, 0.7) > x <- sequence(5) # secuencia que comienza desde 1 (r: 1,2,3,4,5) > x <- sequence(c(5, 2, 4)) # secuencias consecutivas (r: 1,2,3,4,5,1,2,1,2,3,4)

  24. Lenguaje de R: creación de objetos Funciones para vectores • Las funciones sobre vectores serán útiles más adelante cuando se manipulen variables de bases de datos (que también son vectores). > xnew <- sort(x) # ordenamiento de x (creciente) > xnew <- sort(x, decreasing=T) # orden decreciente > xnew <- rev(x) # vector en orden reverso > xnew <- rev(sort(y)) # ordenamiento de x decreciente > xnew <- rank(x) # rangos de vector x > xnew <- rank(x,ties="min") # ranking típico de deportes > xnew <- order(x) # indicadores de posición de datos en x si # estuvieran ordenados > x[order(y)] # muestra valores de x ordenados según y

  25. Lenguaje de R: creación de objetos Función “cbind” • La función cbind es útil para crear una especie de dataframe (aunque en realidad es una matriz) a partir de un conjunto de vectores que sean objetos aislados en R. > peso <- c(2300, 3000, 3150, 3540, 2900) > talla <- c(49, 50.5, 52, 50, 49.5) > ID <- 1:5 > datos <- cbind(ID, peso, talla) > datos ID peso talla [1,] 1 2300 49.0 [2,] 2 3000 50.5 [3,] 3 3150 52.0 [4,] 4 3540 50.0 [5,] 5 2900 49.5 >

  26. Lenguaje de R: creación de objetos Matrices* *Aunque en este curso manejaremos principalmente vectores, aquí se muestran las operaciones básicas con matrices. > x <- matrix(0, 2, 2) # generación de matriz 2x2 inicializada en 0 > x <- matrix(c(1,2,1,3),ncol=2) # matriz 2x2 por columnas: col1=(1,2)^t col2=(1,3)^t > x <- matrix(c(1,2,1,3),nrow=2) # matriz 2x2 por filas: row1=(1,2)^t row2=(1,3)^t > ident <- diag(3) # genera matriz identidad de 3x3 > dim(x) # dimension de la matriz > y <- t(x) # matriz traspuesta de x > y <- solve(x) # matriz inversa de x > y <- t(x)%*%x # producto matricial: t(x)*x > y <- x*z # x*z multiplica elemento a elemento

  27. Ejercicio 1 • Genere los siguientes objetos: • vector peso: 58, 67, 54, 56.5, 55.1, 79.3, 66.7, 75, 83.9, 71 • vector talla: 1.56, 1.66, 1.7, 1.57, 1.68, 1.7, 1.73, 1.68, 1.8, 1.76 • Genere un vector imc definido como el peso dividido por la talla al cuadrado. Describa el vector imc (peso / talla2) • Genere un vector sexo que tome el valor F para los primeros 5 registros y el valor M para los últimos 5 registros (use comandos rep o gl) • Describa el vector imc en forma separada para cada sexo • Genere una matriz llamada datos con los 4 vectores: peso, talla, imc y sexo. Muestre la matriz en pantalla • En el vector peso, cambie el valor 83.9 (penúltimo dato) por NA. Describa el vector resultante. • Ejecute el comando: peso[order(talla)]. ¿Qué interpretación tiene el vector resultante? • Aplique el siguiente comando a sus objetos (summary)

More Related