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

Documentos relacionados
Estructuras de Datos. José Enrique Martín García Universidad Politécnica de Gimialcón (Copyright 2015)

Entender los objetos de R. Francisco Viciana. Curso

GUÍA TEÓRICO PRÁCTICA 2.

Principios y Herramientas de Programación

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

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

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

APRENDER DEMOGRAFÍA I CON "R-PROJECT" T E S I S UNIVERSIDAD NACIONAL AUTÓNOMA FACULTAD DE CIENCIAS DE MÉXICO QUE PARA OBTENER EL TÍTULO DE: ACTUARIA

Prácticas Propuestas Tema 1 R

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

R como un ambiente de cálculo

1 Variables y tipos de datos

Principios y Herramientas de Programación

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

Primeros pasos en R. Peter Dalagaard. Facultad de Estudios Superiores Acatlán Licenciatura en Economía Econometría III.

Practica 2. Estructuras de Datos en MATLAB

PRÁCTICAS DE ESTADÍSTICA CON R

Introducción a R. Sesión 2 Nociones Básicas

Sesión 1: Una introducción a R

MATEMÁTICA D INTRODUCCIÓN A SCILAB. Por: Dr. Javier Francesconi

Tipos De Datos. Numéricos. Alfanuméricos (string) Arreglos (Vectores, Matrices) Estructurados Registros (Def. Por el Archivos Usuario) Apuntadores

Data Analysis in Python (Pandas)-Parte I

Cursada Segundo Cuatrimestre 2012 Guía de Trabajos Prácticos Nro. 1

Proyecto de Innovación Docente: Guía multimedia para la elaboración de un modelo econométrico.

PROGRAMACIÓN ORIENTADA A OBJETOS

INTRODUCCIÓN A LA PROGRAMACIÓN ESTADÍSTICA CON R PARA PROFESORES. José Miguel Contreras García Elena Molina Portillo Pedro Arteaga Cezón

Introducción a R. Sesión 2 Nociones Básicas

Aproximación a R. Universidad de Granada. Contenido Introducción a R Variables y Data.frames Archivos Tabulación Resúmenes numéricos Gráficos

De cómo usar R en un tiempo razonable (no fácil, no)

MANUAL DE PRÁCTICAS CON R

GUIA BÁSICA DEL PROCEDIMIENTO MATRIX END MATRIX

INFORMÁTICA MATLAB GUÍA 3 Operaciones con Matrices

PHP: Lenguaje de programación

Octave. Entorno Interactivo. 19/8/2013 Computación 1 - Facultad de Ingeniería 1

Curso Informática Lección 3. Tipos de datos, constantes y variables

4. Operadores Operador asignación

Formato de Numero Microsoft Excel.

Números enteros (cortos, largos y sin signo) Números reales (precisión simple y doble) Carácter y cadenas de caracteres. Lógicos.

Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL

Análisis de datos en salud

Informática básica. Excel es una herramienta que nos permite realizar muchas tareas gracias a sus funciones, formulas, herramientas y macros.

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE BIOTECNOLOGIA DEPARTAMENTO DE CIENCIAS BASICAS

1.2 Uso del software como una calculadora. Iniciación a los operadores y almacenamiento de datos.

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

UNIDAD 3: FUNCIONES, VECTORES Y LISTAS EN R

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

PHP y MySQL Domine el desarrollo de un sitio Web dinámico e interactivo (3ª edición)

UNIVERSIDAD MODULAR ABIERTA FACULTAD DE CIENCIAS ECONOMICAS

Input y Output. Texto

Pre-Laboratorio 1 MA-33A : Introducción a Matlab

1.1 Define un operador ( ) que devuelva True si y solo si tan solo uno de sus argumentos es True. Por ejemplo:? (3 > 2) (2 > 5)

ÍNDICE INTRODUCCIÓN...13

Seminario 1. Excel Básico

INFORMATICA TECNICATURA DE NIVEL SUPERIOR ALGUNOS EJERCICIOS DE SELECCIÓN E ITERACION

DESCRIPCIÓN DEL LENGUAJE DE PROGRAMACIÓN P-0

MATERIAL INTRODUCTORIO ORACLE 11G

Introducción al Cálculo Simbólico a través de Maple

Octave. Entorno Interactivo. 13/8/2018 Computación 1 - Facultad de Ingeniería 1

Guía práctica SQL. (c) Francisco Charte Ojeda

1.4 Ficheros m. Entrada y salida de datos por consola.

Programación con Matlab

Hoja electrónica Microsoft Excel

CALCULO GRADO EN INGEN. INFORM. DEL SOFTWARE PRACTICA 1. INTRODUCCIÓN A MATLAB

Tema 2: Desarrollo de Algoritmos. E.E. de Algorítmica

» Profesorado. Tutorías: Martes de 16:30 a 19:30 Miércoles de 10:00 a 13:00. Concertar cita previa por ! Cristina Suárez Mejías

Introducción al lenguaje C

R_BÁSICO. Create PDF with GO2PDF for free, if you wish to remove this line, click here to buy Virtual PDF Printer

Arreglos numéricos. Programación Clase 23

Curso de diseño experimental 2137

Lenguaje R: Un complemento libre para las asignaturas de estadística.

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

1.3 Tipos de datos elementales, operadores y comandos utilitarios

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 4. Técnicas de Dispersión. Definición y Manejo.

2. EXPRESIONES 3. OPERADORES Y OPERANDOS 4. INDENTIFICADORES COMO LOCALIDADES DE MEMORIA

Herramientas computacionales para la matemática MATLAB: Arreglos

Oracle Database 12c SQL and PLSQL Fundamentals

Seminario 55. Excel Experto

Introducción a Matlab y Simulink

Datos Elementales y formato de un programa en Java

1. Presentación del lenguaje C Creado en 1972 por D. Ritchie Lenguaje de propósito general Portátil o transportable (generalmente) Inicialmente de niv

Escuela Normal Superior N 40 Mariano Moreno. Cuadernillo Propedéutico 2017 Nivel Superior

Algoritmos y Programación Orientada a Objetos I. Contenedoras de tamaño variable y uso de ciclos en otros contextos

Introducción a los archivos (I)

Rancagua, Agosto 2009

Introducción 1 Recuperación de Datos mediante la Sentencia SQL SELECT

Una vez que se haya instalado el paquete R en la computadora y abierto una consola de programación, realice los siguientes ejercicios:

o Los arreglos son colecciones ordenadas de datos del mismo tipo. o Ejemplos: 2

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

Programación Web Tema 3.2 Java Script Estructura del Lenguaje. Ramón Alcarria ETSI en Topografía, Geodesia y Cartografía - UPM

CURSO EXPERTO EXCEL 201 BASICO

directamente indirectamente

El SQL es un lenguaje estándar de programación para el acceso a bases de datos.

Tipos de datos y Operadores Básicos

Tecnologías en la Educación Matemática

Datos y tipos de datos

Tutorial - Introducción al R Bíoestadística/Estadística Semestre par 2016

Tema: CREACIÓN DE FORMULAS Y FUNCIONES EN MICROSOFT EXCEL 2013.

Transcripción:

Introducción a R Aspectos básicos (tipos, I/O, aleatoreidad) Juan A. Botía Departamento de Ingeniería de la Información y las Comunicaciones Universidad de Murcia Tratamiento Inteligente d la Información y Aplicaciones Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 1 / 28

Estructura de la presentación 1 Introduction 2 Escribiendo y leyendo datos de disco 3 Generación de datos 4 Tipos de objetos Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 2 / 28

Introduction Qué es R? Una herramienta para realizar análisis de datos Matricial y matemático Estadístico Clasificación, clustering, etc... Computación científica Es interpretado Es orientado a objetos Funciona en base a paquetes Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 3 / 28

Introduction Cómo R trabaja Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 4 / 28

Introduction Normalmente se gestionan varios objetos en memoria Un objeto se crea mediante un operador de asignación Si el objeto ya existía, se sobrescribe Es posible listar los objetos en memoria (también usar patrones) También es posible mirar con detalle a su contenido Podemos crear objetos compuestos a partir de objetos simples Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 5 / 28

Introduction Ejemplos de lo anterior > n <- 15 > n [1] 15 > 5 -> n > n [1] 5 > x <- 1 > X <- 10 > x [1] 1 > X [1] 10 > name <- "Carmen" > n1 <- 10; n2 <- 100 > m <- 0.5 > ls() [1] "m" "n1" "n2" "name" > ls(pat = "m") [1] "m" "name" > ls(pat = "^m") [1] "m" > ls.str() m : num 0.5 n1 : num 10 n2 : num 100 name : chr "Carmen" > M <- data.frame(n1, n2, m) > ls.str(pat = "M") M : data.frame : 1 obs. of 3 variables: $ n1: num 10 $ n2: num 100 $ m : num 0.5 > ls.str(pat="m", max.level=-1) M : data.frame : 1 obs. of 3 variables: Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 6 / 28

Introduction Atributos de los objetos Los objetos tienen un nombre y un contenido, pero también tienen Un modo: es el tipo del dato básico 4 principales: numérico, caracter, complejo y lógico (TRUE, FALSE) Utilizamos mode() Una longitud: la cantidad de elementos básicos Utilizamos length() Independientemente del modo, si un valor no está, usamos NA, si es infinito, Inf o -Inf, si no es un número NaN Para representar strings usamos las comillas dobles, para caracteres las simples Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 7 / 28

Introduction Ejemplos de lo anterior > x <- 1 > mode(x) [1] "numeric" > length(x) [1] 1 > A <- "Gomphotherium" > compar <- TRUE > z <- 1i > mode(a) [1] "character" > mode(compar) [1] "logical" > mode(z) [1] "complex" > x <- 5/0 > x [1] Inf > exp(x) [1] Inf > exp(-x) [1] 0 > x - x [1] NaN > x <- "Doub quotes \" delimitate R s strings." > x [1] "Double quotes \" delimitate R s strings." > cat(x) Double quotes " delimitate R s strings. > x <- Double quotes " delimitate R\ s strings. > x [1] "Double quotes \" delimitate R s strings." Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 8 / 28

Escribiendo y leyendo datos de disco Leyendo datos de un fichero R siempre está situada en un directorio de trabajo (getwd()), que se puede cambiar (setwd()), de ahí lee los ficheros Es posible leer de ficheros en ASCII, Excel, SAS, SPSS, SQL-like (estas últimas necesitan paquetes adicionales) La función > mydata <- read.table( data.dat ) Creará un objeto mydata en el que cada variable se llamará por defecto V1, V2,... Se podrán acceder mediante mydata$vi siendo i el índice, o mediante mydata[ Vi ], o incluso mydata[,i] Hacer help(read.table) para ver todas las opciones La función > mydata <- scan("data.dat", what = list("", 0, 0)) Indicamos que la primera es de modo carácter y las otras dos numéricas Hacer help(scan) para ver todas las opciones Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 9 / 28

Escribiendo y leyendo datos de disco Escribiendo datos en un fichero Podemos hacerlo con write.table() Podemos guardar cualquier tipo de objeto en un fichero La forma más sencilla de utilizarlo es write(x,file= data.txt ) en donde x es el nombre del objeto Podemos hacer help(write) para ver todas las opciones Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 10 / 28

Generación de datos Generando datos artificialmente A veces es útil generar secuencias regulares de enteros El operador : indica una secuencia y tiene prioridad sobre los aritméticos Podemos crear secuencias por intervalos y salto mediante seq() Podemos repetir el mismo número con rep() Podemos crear una serie de secuencias con sequence() O series de factores con gl(k,n) O un frame de datos con combinaciones de factores dados como argumentos con expand.grid() Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 11 / 28

Generación de datos Ejemplos de lo anterior > x <- 1:30 > 1:10-1 [1] 0 1 2 3 4 5 6 7 8 9 > 1:(10-1) [1] 1 2 3 4 5 6 7 8 9 > seq(1, 5, 0.5) [1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 > seq(length=9, from=1, to=5) [1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 > c(1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5) [1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 rep(1, 30) [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1... > sequence(4:5) [1] 1 2 3 4 1 2 3 4 5 > sequence(c(10,5)) [1] 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 12 / 28

Generación de datos Ejemplos de lo anterior (y 2) > gl(3, 5) [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 Levels: 1 2 3 > gl(3, 5, length=30) [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 Levels: 1 2 3 > gl(2, 6, label=c("male", "Female")) [1] Male Male Male Male Male Male [7] Female Female Female Female Female Female Levels: Male Female > gl(2, 10) [1] 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 Levels: 1 2 > gl(2, 1, length=20) [1] 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 Levels: 1 2 > gl(2, 2, length=20) [1] 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 Levels: 1 2 16 Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 13 / 28

Generación de datos Ejemplos de lo anterior (y 3) > expand.grid(h=c(60,80), w=c(100, 300), sex=c("male", "Female")) h w sex 1 60 100 Male 2 80 100 Male 3 60 300 Male 4 80 300 Male 5 60 100 Female 6 80 100 Female 7 60 300 Female 8 80 300 Female Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 14 / 28

Generación de datos Generación de números aleatorios Es muy útil generar muestras artificiales que siguen una determinada distribución de probabilidad, mediante la forma genérica rfunc(n, p1, p2,...) en donde rfunc es la d.p. y los pi son parámetros de la misma Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 15 / 28

Tipos de objetos Vectores Se crean mediante vector(mode,length) como en >vector(mode="integer",3) [1] 0 0 0 aunque tambien se puede hacer con las funciones, con ejemplos numeric(3) logical(5) character(2) Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 16 / 28

Tipos de objetos Factores Un factor es una variable categórica, siendo su llamada por defecto factor(x, levels = sort(unique(x), na.last = TRUE), labels = levels, exclude = NA, ordered = is.ordered(x))} siendo los niveles el número de valores distintos y labels las correspondientes etiquetas de dichos valores, p.ej. > factor(1:3) [1] 1 2 3 Levels: 1 2 3 > factor(1:3, levels=1:5) [1] 1 2 3 Levels: 1 2 3 4 5 > factor(1:3, labels=c("a", "B", "C")) [1] A B C Levels: A B C > factor(1:5, exclude=4) [1] 1 2 3 NA 5 Levels: 1 2 3 5 > ff <- factor(c(2, 4), leve > ff [1] 2 4 Levels: 2 3 4 5 > levels(ff) [1] "2" "3" "4" "5" Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 17 / 28

Tipos de objetos Matrices Como un vector, con un atributo adicional de tipo vector con dos elementos (filas y columnas) matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL) siendo byrow la forma de llenar la matriz (por filas o columnas) > matrix(data=5, nr=2, nc=2) [,1] [,2] [1,] 5 5 [2,] 5 5 > matrix(1:6, 2, 3) [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6 > matrix(1:6, 2, 3, byrow=true) [,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6 > x <- 1:15 > x [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 > dim(x) NULL > dim(x) <- c(5, 3) > x [,1] [,2] [,3] [1,] 1 6 11 [2,] 2 7 12 [3,] 3 8 13 [4,] 4 9 14 [5,] 5 10 15 Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 18 / 28

Tipos de objetos Frames de datos Podemos crearlos con el comando data.frame(...) como en > x <- 1:4; n <- 10; M <- c(10, 35); y <- 2:4 > data.frame(x, n) x n 1 1 10 2 2 10 3 3 10 4 4 10 siendo la llamada por defecto data.frame(..., row.names = NULL, check.rows = FALSE, check.names = TRUE, stringsasfactors = default.stringsasfactors()) Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 19 / 28

Tipos de objetos Listas En las listas no hay restricciones en cuanto a los elementos que pueden aparecer ahí > L1 <- list(x, y); L2 <- list(a=x, B=y) > L1 [[1]] [1] 1 2 3 4 [[2]] [1] 2 3 4 > L2 $A [1] 1 2 3 4 $B [1] 2 3 4 > names(l1) NULL > names(l2) [1] "A" "B" Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 20 / 28

Tipos de objetos Operadores Más detalles en los manuales Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 21 / 28

Tipos de objetos Algunos detalles sobre indexación Podemos acceder muy fácilmente a un elemento en un vector > x <- 1:5 26 > x[3] [1] 3 > x[3] <- 20 > x [1] 1 2 20 4 5 Si accedemos a una matriz o un frame de datos es igual de simple > x <- matrix(1:6, 2, 3) > x [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6 > x[, 3] <- 21:22 > x [,1] [,2] [,3] [1,] 1 3 21 [2,] 2 4 22 > x[, 3] [1] 21 22 Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 22 / 28

Tipos de objetos Más detalles sobre indexación Podemos eliminar filas y columnas, utilizando signos negativos > x[, -1] [,1] [,2] [1,] 3 21 [2,] 4 22 > x[, -(1:2)] [1] 21 22 > x[, -(1:2), drop = FALSE] [,1] [1,] 21 [2,] 22 Podemos indicar aquellos datos a los que queremos acceder mediante condiciones > x <- 1:10 > x[x >= 5] <- 20 > x [1] 1 2 3 4 20 20 20 20 20 20 > x[x == 1] <- 25 > x [1] 25 2 3 4 20 20 20 20 20 20 Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 23 / 28

Tipos de objetos Cálculos matemáticos sencillos Los cálculos pueden hacerse sobre datos simples o sobre vectores Los siguientes son ejemplos de exprsiones sum(x), prod(x), max(x), min(x) which.max(x), which.min(x) devuelven los índices de máximo y mínimo respectivamente var(x), cov(x), cor(x), var(x,y), cov(x,y)... Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 24 / 28

Tipos de objetos Cálculo matricial Podemos unir dos matrices, mediante filas y columnas con rbind() y cbind(), respectivamente > m1 <- matrix(1, nr = 2, nc = 2) > m2 <- matrix(2, nr = 2, nc = 2) > rbind(m1, m2) [,1] [,2] [1,] 1 1 [2,] 1 1 [3,] 2 2 [4,] 2 2 > cbind(m1, m2) [,1] [,2] [,3] [,4] 33 [1,] 1 1 2 2 [2,] 1 1 2 2 Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 25 / 28

Tipos de objetos Cálculo matricial (II) Podemos multiplicar dos matrices, mediante %*%, como en > rbind(m1, m2) %*% cbind(m1, m2) [,1] [,2] [,3] [,4] [1,] 2 2 4 4 [2,] 2 2 4 4 [3,] 4 4 8 8 [4,] 4 4 8 8 > cbind(m1, m2) %*% rbind(m1, m2) [,1] [,2] [1,] 10 10 [2,] 10 10 Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 26 / 28

Tipos de objetos Cálculo matricial (III) Podemos extraer o modificar la diagonal de una matriz, o construir una matriz diagonal > diag(m1) [1] 1 1 > diag(rbind(m1, m2) %*% cbind(m1, m2)) [1] 2 2 8 8 > diag(m1) <- 10 > m1 [,1] [,2] [1,] 10 1 [2,] 1 10 > diag(3) [,1] [,2] [,3] [1,] 1 0 0 [2,] 0 1 0 [3,] 0 0 1 > v <- c(10, 20, 30) > diag(v) [,1] [,2] [,3] [1,] 10 0 0 [2,] 0 20 0 [3,] 0 0 30 > diag(2.1, nr = 3, nc = 5) [,1] [,2] [,3] [,4] [,5] [1,] 2.1 0.0 0.0 0 0 [2,] 0.0 2.1 0.0 0 0 [3,] 0.0 0.0 2.1 0 0 Podemos utilizar t() para la traspuesta, solve() para la inversa,... Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 27 / 28

Tipos de objetos Conclusiones En esta primera parte hemos visto Lecturas y escrituras desde y en ficheros Vectores, factores, frames de datos Operadores matemáticos y acceso a objetos Simple cálculo matricial Conclusiones: R es un lenguaje interpretado en que los tipos se manejan de forma sencilla y flexible Juan A. Botía (DIIC, UMU) Introducción a R TIIA 2009/2010 28 / 28