Principios de Estadística. Estructuras de Control. Matrices. Archivos y directorios

Documentos relacionados
Leonardo Collado Torres Licenciatura en Ciencias Genómicas, UNAM Cuernavaca, México Oct-Nov, 2008

Principios de Estadística. Intro. Problema

Taller de Introducción a R 2. Manipulación de datos

Principios y Herramientas de Programación

Principios de Estadística. Datos. Pie

Prácticas Propuestas Tema 1 R

Principios de Estadística. Histogramas. Comparar distribuciones. Comparar cuantiles

Principios y Herramientas de Programación

23/09/2009. Introducción Hello word La familia Buendía Recursión Listas

Aspectos básicos (tipos, I/O, aleatoreidad) Juan A. Botía. Tratamiento Inteligente d la Información y Aplicaciones

UNIDAD 4: MATRICES, MARCOS DE DATOS Y LECTURA DE DATOS EN R

Input y Output. Texto

R como un ambiente de cálculo

GUÍA TEÓRICO PRÁCTICA 2.

Principios de Estadística. Intro. En R. Ejercicios

Data Science. Habilidades. Dificultad. Notas. Módulo 2. Introducción a RStudio. Lección 2.1. Herramientas

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)

Taller de análisis estadístico con R 2. Manipulación de datos

Resumen Clase Anterior Arreglos Unidimensionales Ejemplos Ejercicio Arreglos Multidimensionales. ING1310 Introducción a la Computación.

Scientific Programming with Python

FUNCIONES EN EXCEL III

Curso de Programación en R

Oracle Database 12c SQL and PLSQL Fundamentals

LA FUNCIÓN SI EN EXCEL

CURSOS DE VERANO 2014

Herramientas computacionales para la matemática MATLAB: Estructuras de control

Introducción rápida a la programación (estructurada ) con C++

Es la estructura que permite ejecutar los comandos solamente si se cumple una determinada condición. La sintaxis más usual:

Alfred V. Aho, Peter J. Weinberg, Brian W. Kerningan

Introducción Comandos básicos en R. Introducción a R. Felipe Bravo Márquez. 13 de noviembre de 2013

ING1310 Introducción a la Computación. Python. Conceptos Básicos. Carlos Reveco

Sistemas de Bases de Datos II ITS / ITSB EMT CETP

Gráficos con Funciones y Matrices

Lenguajes de Programación I

R como instrumento de trabajola sintaxis de R en la práctica versión: Fri Feb 3 14:50:

Unidad 1. Análisis de Algoritmos. Ing. Leonardo R. L. Estructura de datos - Generalidades Unidad I Pág 1

Introducción y organización de los Datos en el SPSS. Anexo I

Gráfica del campo de direcciones y curvas solución. Encontrar valores numéricos de la solución en valores t.

Estructura de Datos ARREGLOS

Calidad del Software. Ejercicios Tema 4 Conceptos de pruebas

En este curso de formación PHP, los estudiantes aprenderán a crear si os web con bases de datos usando PHP y MySQL o la base de datos de su elección

Sesión 1: Una introducción a R

pwd Nos muestra el directorio en el que nos encontramos.

Excel for masters. Macros y aplicaciones VBA

TP N 4 Redirección de entrada y salida estándar

PONGA A FUNCIONAR SU LECTOR DE CODIGOS DE BARRAS AL 100%

Recursión. Recursión continuación

Introducción. Universidad de Concepción, Chile Departamento de Geofísica Programación Científica con Software libre.

Funciones & Estructuras de control

Introducción a Python. Cecilia Manzino

Computación I Curso 2016 Facultad de Ingeniería Universidad de la República

Datos: Lectura y escritura. José Enrique Martín García Universidad Politécnica de Gimialcón (Copyright 2015)

Entender los objetos de R. Francisco Viciana. Curso

Computación archivos

Tipos Recursivos de Datos

Algoritmos y Estructuras de Datos Iteradores. Guillermo Román Díez

Repaso NLTK similar() Esta es otra de las funciones que brinda NLTK con su Text. Obtiene las palabras similares (dentro del Text a la palabra que se d

Curso. Análisis de datos con R.

Ejemplo de la creación de una base de datos usando arrays, herencia, tipos compuestos, otros.

OFFICE TOMOS. Objetivos. A quién va dirigido? Para qué capacita este título? Otros Datos de interés

CAPÍTULO IV: 4.1 Introducción a la. Programación Funcional

TUTORIAL SOBRE HOJAS DE CALCULO

SOFTWARE Microsoft Visual Studio 2005.NET FrameWork 2.0

GRAFICOS EN EXCEL. En muchas ocasiones resulta muy útil que la información contenida en un libro de Excel se visualice gráficamente.

Data Analysis in Python (Pandas)-Parte I

Departamento de Matemática Aplicada CÁLCULO COMPUTACIONAL. Licenciatura en Química (Curso ) Archivos de órdenes. Programación.

Lección 2. Tutorial básico de MATLAB: Guiones y funciones

Clase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño

1 Variables y tipos de datos

MATERIAL INTRODUCTORIO ORACLE 11G

Curso de Introducción a la Estadística Tabla (función) de densidad de una variable aleatoria discreta en R. Probabilidad: p 1 p 2 p 3 p k

Manual rápido para evaluación de series en Python

Estructura de Datos. Arreglos. Experiencia Educativa de Algorítmica ESTRUCTURA DE DATOS - ARREGLOS 1

Publicación de paquetes (práctica)

Estructuras de datos Solemne 2

Trabajando con bases de datos. ClaseOracleBD

Seminario 1. Excel Básico

Inicie Specifi desde el ícono presente en el Desktop.

INTRODUCCIÓN. Versión 7.3

Programación Avanzada para Sistemas de Telecomunicación Arrays

Tipos de Datos Recursivos

COMO SE PROGRAMA EN VISUAL FOXPRO

UNIDAD 7: PROGRAMACIÓN EN R

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

Tema 10: Estructuras de control de entrada y salida

Estadística con. Práctica 1: Objetos. Datos. 1. Inicio de Sesión con R. M. Iniesta Universidad de Murcia

ÍNDICE. Introducción... Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1

Práctica 0: Introducción a Matlab. Matlab es un acrónimo: MATrix LABoratory

Programación en R Minería de Datos I. Dr. Oldemar Rodríguez R.

Estructuras de Control. Cecilia Curlango Rosas

Programación Estructurada

PROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }

... Bases de datos con Excel CAPÍTULO Creación de una Base de Datos

OBJETIVOS ÍNDICE MÓDULO 1: VISUAL BASIC 6.0 PARTE 1ª

PRACTICA Nº 8. String String String String String

Estadística Avanzada para Actuarios Introducción a R

PLANTILLAS Y MACROS. También veremos cómo crear una Macro en Excel que automatice una tarea, de forma que al ejecutarla agilice el trabajo.

ARCHIVOS CON SERIES DE LAS CUENTAS FINANCIERAS DE LA ECONOMIA ESPAÑOLA Manual del usuario

Transcripción:

Leonardo Collado Torres y María Gutiérrez Arcelus Licenciatura en Ciencias Genómicas, UNAM www.lcg.unam.mx/~lcollado/index.php www.lcg.unam.mx/~mgutierr/index.php Cuernavaca, México Febrero - Junio, 2009 1 / 23

Introducción y R básico parte 2 1 2 3 4 5 2 / 23

El famoso if R ofrece las estructuras de control más clásicas con lo cual luego podremos hacer funciones. El if es la estructura más simple y su sintaxis es bastante sencilla: if (cond1=vdd) {cmd1} else {cmd2} El ifelse no se diferencia tanto, aunque es una función. Mas bien es como en Excel; su sintaxis es: ifelse(prueba, valor-vdd, valor-falso) Aquí les mostramos un par de ejemplos: > if (1 == 0) { + print(1) + } else { + print(2) + } 3 / 23

El famoso if [1] 2 > x <- 1:10 > ifelse(x < 5 x > 8, x, 0) [1] 1 2 3 4 0 0 0 0 9 10 4 / 23

Ciclos El for ya no es tan similar a lo que conocemos. Su sintaxis base es: for(variable in secuencia) {comandos} El segundo tipo de ciclo más usado es while. Su sintaxis base es: while(condición) {comandos} El último y que casi nunca se usa es el repeat. Realmente no se los recomendamos... en fin, aquí tienen un ejemplo de un ciclo for: > x <- 1:10 > z <- NULL > for (i in 1:length(x)) { + if (x[i] < 5) { + z <- c(z, x[i] - 1) + } 5 / 23

Ciclos + else { + z <- c(z, x[i]/x[i]) + } + } > z [1] 0 1 2 3 1 1 1 1 1 1 6 / 23

Usando un while Se acuerdan del problema de los números de Fibonnaci? Bueno, lo podemos hacer con un while fácilmente. > i <- 0 > j <- 1 > res <- c(i, j) > while (2 * i + j < 1000) { + temp <- j + i <- i + j + j <- i + temp + res <- c(res, i, j) + } > res [1] 0 1 1 2 3 5 8 13 21 [10] 34 55 89 144 233 377 610 7 / 23

R te permite tener variables de tipo matriz. Estas simplemente son vectores con un vector dimensional que es diferente de NULL. Si le cambias el vector de dimensiones a un vector, lo puedes volver una matriz 1. Esto afecta como se imprime como ven a continuación: > V <- runif(81) > print(v[1:9]) [1] 0.06665838 0.50140651 0.92618926 [4] 0.74712320 0.87476979 0.33251160 [7] 0.22798309 0.50289956 0.59002158 > dim(v) 8 / 23

NULL > dim(v) <- c(9, 9) > print(v[1:2, ]) [,1] [,2] [,3] [1,] 0.06665838 0.1233769 0.4924105 [2,] 0.50140651 0.4658742 0.2602117 [,4] [,5] [,6] [1,] 0.08575325 0.3205740 0.7239938 [2,] 0.05443288 0.6745646 0.3106217 [,7] [,8] [,9] [1,] 0.8000470 0.9766076 0.45549137 [2,] 0.6200741 0.2415377 0.05021652 1 No a fuerzas es de 2 dimensiones!! 9 / 23

Con matrix Otra forma de definir una matriz es con la función matrix: > args(matrix) function (data = NA, nrow = 1, ncol = 1, byrow = F NULL > X <- matrix(1:16, 4, 4, byrow = TRUE) Cómo es nuestra matriz X? Pueden poner nombres a las ĺıneas o columnas usando rownames o colnames. Índices en matrices Para recuperar alguna columna o ĺınea de una matriz usen los índices con el formato [ĺınea,columna]. Por ejemplo, la ĺınea 1 con X[1,] o la columna 2 con X[,2]. 10 / 23

Leer un archivo Algo esencial que todos sepan es como abrir un archivo o directorio en R. Dudamos mucho que quieran usar scan() y llenar los datos manualmente :P. R puede manejar varios archivos con números para una sola variable, tablas de números, archivos tipo csv y más. Por ejemplo, podríamos haber leido la info de los fagos así: fagos <- scan(file="fagos.txt") 2 Las funciones principales para leer archivos son scan() 3, read.table(), read.csv() y source(). Si quieren especificar el archivo de entrada cuando ejecuten el comando, pueden usar read.table(file=file.choose()). 2 El archivo tendría que estar en el mismo folder donde estamos trabajando 3 Especificando el archivo de entrada 11 / 23

Data Frame Data Frames Un formato muy usado en R son los data frames. Estos en realidad son como una hoja de cálculo donde cada columna es una variable. Pueden accesar a cada columna con dataframe$variable o dataframe[["variable"]]. Además pueden usar las funciones attach y detach para agregar las variables de un data frame al ambiente de R. 4 ; la función with(data.frame, comando) hace lo mismo. Finalmente, pueden ver el principio o el final de un data frame o matriz usen head() o tail(). 4 No es recomendable si piensan modificar los valores del data frame o si ya tienen variables con los mismos nombres 12 / 23

read.table Example (Leer una tabla) Para leer una tabla con algo de info sobre unos fagos usen: > arch <- "10biggestPhages.txt" > fagos.gr <- read.table(file = arch, + header = TRUE) R también te permite leer archivos que están en servidores web. Esta misma tabla también la pueden leer así 5 : 13 / 23

read.table > sitio <- "http://kabah.lcg.unam.mx/~lcollado/e/" > sitio <- paste(c(sitio, "data/10biggestphages.txt"), + collapse = "") > fagos.gr <- read.table(file = url(sitio), + header = TRUE) > fagos.gr <- read.table(file = sitio, + header = TRUE) > fagos.gr[c(2:4)] GenomeSize EMBL Taxid 1 280334 AF399011_GR 169683 2 252401 AY939844_GR 268746 3 244834 AY283928_GR 75320 4 233234 AY266303_GR 227470 5 211215 AJ697969_GR 273133 14 / 23

read.table 6 196280 AJ630128_GR 238854 7 185683 AP008983_GR 12336 8 180500 AY967407_GR 115991 9 178249 AY940168_GR 268747 10 176847 DQ149023_GR 382359 > fagos.gr$taxid[2:3] [1] 268746 75320 Noten que las 2 formas de read.table son iguales, solo que una es más clara en su sintaxis. Además, el output de read.table es un data frame. Chequen los argumentos de la función read.table; en especial sep y header. 5 Mejor usen sitio <- "http://kabah.lcg.unam.mx/~lcollado/e/data/10biggestphages.txt" tuvimos que hacerlo de otra forma por el espacio 15 / 23

Directorios Muchas veces quieres abrir más de un archivo de un directorio o folder. Tal vez no quieres abrir todos, así que tienes que buscar un patrón en sus nombres. La forma más automática de hacerlo es así: > files <- list.files(pattern = "s.txt$") > for (i in files) { + x <- read.table(i, header = TRUE) + assign(i, x) + print(i) + } [1] "10biggestPhages.txt" [1] "fagos.txt" 16 / 23

Que son R ofrece diferentes objetos como son los vectores atómicos 6, matrices y data frames. Otro de estos son los list. Las list en realidad consisten de una colección de objetos conocidos como sus componentes. Estos pueden ser de cualquier tipo como ven aquí: > lista <- list(nombre = "Leo", hermano = "Alex", + edad = 21, calif.alumnos = c(6, + 9, 10, 8, 7)) > lista$nombre == lista[[1]] [1] TRUE > lista$calif.alumnos[1] == lista[[4]][1] [1] TRUE 17 / 23

Que son > var <- "hermano" > lista[["hermano"]] == lista[[var]] [1] TRUE 6 Donde todos los elementos son del mismo tipo 18 / 23

Accesando una lista Como se habrán dado cuenta, hay diferentes formas de accesar a una lista. En general, puedes accesar a cada elemento usando lst[[i]] donde i va desde 1 hasta length(lst). $ es útil por si no se acuerdan de que posición corresponde al elemento que quieren recuperar. lista[[var]] es bastante útil si el nombre del elemento que quieren accesar está en una variable. Si el elemento de la lista es un vector, pueden accesar a las diferentes posiciones como en el ejemplo de lista[[4]][1]. Es muy importante que noten la diferencia entre lista[1] y lista[[1]]. El primero te regresa una sublista mientras que el segundo te regresa el primer elemento de la lista. 19 / 23

Crear una lista Crear una lista es bastante sencillo como ya vieron. Es recomendable que especifiques los nombres de cada elemento aunque no es obligatorio. > lista <- list(nom.1 = ele.1,..., + nom.n = ele.n) Una vez creada una lista, pueden añadirle elementos así: > lista[n + 1] <- list(nom.m = ele.m) Pueden contatenar listas usando c(): > lista.abc <- c(lista.a, lista.b, + lista.c) Finalmente, pueden borrar elementos de la lista usando <- NULL 20 / 23

Que son Otro tipo de objeto en R son los factor. Estos los pueden ver como vectores que tienen alguna información con respecto a la clasificación de los datos. En sí son como enumeraciones en otros lenguajes y son útiles para generar datos tabulares. Cuando usan la función read.table, todo lo que parece un caracter es leido como un factor Luego lean más sobre la función cut para aprender a generar datos tabulares. Un factor no es de tipo numérico! Por ejemplo, no pueden usar la función mean. 21 / 23

Un ejemplo Aquí les mostramos un ejemplo donde usamos un factor ^^: > fiesta <- factor(sample(c("muerto", + "happy", "pedo", "sobrio"), + 100, replace = TRUE, prob = c(0.1, + 0.4, 0.3, 0.2))) > fiesta[1:4] [1] sobrio happy sobrio pedo Levels: happy muerto pedo sobrio > table(fiesta) fiesta happy muerto pedo sobrio 45 7 24 24 22 / 23

Un ejemplo Substituciones Perl es excelente para manejar strings, pero R también puede hacer sustituciones con la función sub. Por ejemplo: > fiesta2 <- sub("o$", "os", as.character(fiesta), + perl = TRUE) > fiesta2[1:10] [1] "sobrios" "happy" "sobrios" [4] "pedos" "muertos" "sobrios" [7] "happy" "pedos" "happy" [10] "sobrios" 23 / 23