Publicado el 18 de Septiembre del 2017
853 visualizaciones desde el 18 de Septiembre del 2017
587,1 KB
29 paginas
Creado hace 13a (30/03/2011)
Curso Introducción R: Sesión 2
David V. Conesa Guillén
Grup d'Estadística Espacial i Temporal en Epidemiologia i Medi Ambient
Dept. d'Estadística i Investigació Operativa
Universitat de València
David Conesa, GEei t•E·ma (UV)
Introducción a R: Sesión 2
1 / 58
Sesión 2: Manejo de datos.
En esta sesión:
1.- Objetos para el manejo de datos.
2.- Características de los objetos en R: modos y atributos. Datos
especiales.
3.- Asignación. Operadores lógicos. Coerción de tipos.
4.- Vectores. Factores. Generación de secuencias regulares. Vectores de
índices.
5.- Variables indexadas (arrays).
David Conesa, GEei t•E·ma (UV)
Introducción a R: Sesión 2
2 / 58
Sesión 2: Manejo de datos.
También:
6.- Matrices. Operaciones con matrices.
7.- Listas.
8.- Los data.frame u hojas de datos: las funciones attach y dettach.
9.- Lectura de cheros de datos.
10.- Importar y exportar datos de otros programas.
David Conesa, GEei t•E·ma (UV)
Introducción a R: Sesión 2
3 / 58
1.- Objetos para el manejo de datos.
R es un lenguaje orientado a objetos: las variables, datos, funciones,
resultados, etc., se guardan en la memoria activa del ordenador en
forma de objetos con un nombre especíco.
Podemos modicar o manipular estos objetos con operadores
(aritméticos, lógicos y comparativos) y funciones (que a su vez son
objetos).
Las estructuras de datos más usuales: variables, vectores, matrices,
factores, variables indexadas, cadenas de caracteres, listas y data
frames.
Existen otros como series temporales y es posible crear nuevas
estructuras de datos.
Recordar el funcionamiento de objects(), ls() y rm().
David Conesa, GEei t•E·ma (UV)
Introducción a R: Sesión 2
4 / 58
2.- Características de los objetos en R: modos y atributos.
Los objetos están compuestos de elementos. Los elementos más simples, las
variables, pueden ser:
Tipos o modos de datos
numeric: número real con doble precisión. Los podemos escribir como
enteros (3, -2), con fracción decimal (3.27) o con notación cientíca
(3.12e-47).
complex: números complejos de la forma a+bi.
character: Cadenas alfanuméricas de texto.
logical: variables lógicas. Puede ser TRUE o FALSE.
Ejemplo
nombre<-"Luis"
varon<-TRUE
edad<-23
estatura<-1.77
David Conesa, GEei t•E·ma (UV)
Datos especiales: NA's.
Introducción a R: Sesión 2
5 / 58
En algunos casos las componentes de un objeto pueden no ser
completamente conocidas.
Cuando un elemento o valor es not available le asignamos el valor
especial NA.
En general una operación con elementos NA resulta NA, a no ser que
mediante una opción de la función, podamos omitir o tratar los datos
faltantes de forma especial.
La opción por defecto en cualquier función es na.rm=FALSE (que
indica que NO elimina los NA), que da como resultado NA cuando
existe al menos un dato faltante.
Con la opción na.rm=TRUE, la operación se efectúa con los datos
válidos.
David Conesa, GEei t•E·ma (UV)
Introducción a R: Sesión 2
6 / 58
Datos especiales: NA's.
Ejemplo
x<-NA
x+1
Asignar NA a la variable x
Observar que el resultado es también un NA.
y<-c(x,3,5,x)
Asignamos al vector y dos NA y dos números.
mean(y)
Calcula la media teniendo en cuenta los NA's.
mean(y,na.rm=TRUE)
Calcula la media SIN tener en cuenta los NA's.
David Conesa, GEei t•E·ma (UV)
Introducción a R: Sesión 2
7 / 58
Datos especiales: Inf y NaN's.
En la mayoría de los casos, no debemos preocuparnos de si los
elementos de un objeto numérico son enteros, reales o incluso
complejos. Los cálculos se realizarán internamente como números de
doble precisión, reales o complejos según el caso.
Para trabajar con números complejos, deberemos indicar
explícitamente la parte compleja.
En determinadas ocasiones los cálculos realizados pueden llevar a
respuestas con valor innito positivo (representado por R como Inf) o
innito negativo (-Inf).
Es posible realizar y evaluar cálculos que involucren Inf.
Sin embargo, a veces, determinados cálculos llevan a expresiones que
no son números (representados por R como NaN's, del inglés `not a
number').
David Conesa, GEei t•E·ma (UV)
Introducción a R: Sesión 2
8 / 58
Datos especiales: Inf y NaN's.
Ejemplo
sqrt(-17)
Produce un Warning message avisando que es un NaN.
sqrt(-17+0i)
Calcula el resultado y devuelve un número complejo.
x<-5/0
Asignamos a x un valor innito.
exp(-x)
Devuelve el valor 0.
exp(x)-exp(x)
Devuelve NaN: es una indeterminación.
David Conesa, GEei t•E·ma (UV)
Introducción a R: Sesión 2
9 / 58
Clasicación de los objetos en R.
Los objetos se pueden clasicar en dos grandes grupos:
atómicos: todos los elementos que los componen son del mismo tipo (o
modo), como por ejemplo los vectores, matrices, series temporales.
recursivos: pueden combinar una colección de otros objetos de diferente
tipo (o modo), como son los data.frame, listas.
Existen otras estructuras recursivas, p.e.:
El modo function está formado por las funciones que constituyen R,
unidas a las funciones escritas por cada usuario. Las trataremos en una
sesión posterior.
El modo expression corresponde a una parte avanzada de R que
trataremos más adelante al presentar las fórmulas en la sesión de
modelos estadísticos.
Recordar además que es posible crear nuevas estructuras.
Utilizando la función str(objeto) podemos obtener información
sobre su estructura.
David Conesa, GEei t•E·ma (UV)
Introducción a R: Sesión 2
10 / 58
Atributos de los objetos.
Los atributos de un objeto suministran información especíca sobre el
propio objeto.
El modo o tipo de un objeto es un caso especial de un atributo de un
objeto. Con el modo de un objeto designamos el tipo básico de sus
constituyentes fundamentales.
Los atributos de un objeto suministran información especíca sobre el
propio objeto. Todos los objetos tienen dos atributos intrínsecos: el
modo y su longitud.
Las funciones mode(objeto) y length(objeto) se pueden utilizar
para obtener el modo y longitud de cualquier estructura.
Ejemplo
x<-c(1,3)
mode(x) # Devuelve el tipo numeric
length(x) # Devuelve la longitud
David Conesa, GEei t•E·ma (UV)
Introducción a R: Sesión 2
11 / 58
Atributos de los objetos.
Mediante attributes(objeto) podemos obtener una lista de los
atributos no intrínsecos y con attr(objeto,atributo) podemos
usar el atributo seleccionado (p.e. para asignarle un valor).
Los atributos son distintos según el tipo de objeto. Una pequeña lista
de atributos es la siguiente:
Atributos de cada tipo
Atributo
mode
Tipos
Todos
storage.mode Todos los datos de modo numérico
length
names
dim
dimnames
tsp
levels
class
Todos
Vectores y listas
Matrices y arrays
Matrices y arrays
Series temporales
Factores
Cualquier clase
David Conesa, GEei t•E·ma (UV)
Introducción a R: Sesión 2
12 / 58
Modicación de la longitud de un objeto
Un objeto, aunque esté vacío, tiene modo.
Ejemplo
v <- numeric() almacena en v una estructura vacía de vector numérico.
character() es un vector de caracteres vacío, y lo mismo ocurre con otros
tipos.
Una vez creado un objeto con un tamaño cualquiera, pueden añadirse
nuevos elementos sin más que asignarlos a un índice que esté fuera del
rango previo.
Ejemplo
v[3] <- 17 transforma v en un vector de longitud 3, (cuyas dos primeras
componentes serán NA).
Esta regla se aplica a cualquier estructura, siempre que los nuevos
elementos sean compatibles con el modo inicial de la estructura.
David Conesa, GEei t•E·ma (UV)
Introducción a R: Sesión 2
13 / 58
3.- Asignación. Operadores lógicos. Coerción de tipos.
Recordar que la función principal para denir un objeto es a través de
sus componentes, con la función c(), mediante el comando más
importante en R que es <- el de la asignación.
Las asignaciones pueden realizarse también con una echa apuntando
a la derecha, realizando el cambio obvio en la asignación.
Ejemplo
x <- 3
es equivalente a
3 -> x
pero no a
x < - 3
La asignación puede realizarse también mediante la función assign().
Ejemplo
x<-c(1,3) es equivalente a assign("x", c(1, 3))
En muchos contextos el símbolo = puede también utilizarse
indistintamente para asignar un objeto.
David Conesa, GEei t•E·ma (UV)
Introducción a R: Sesión 2
14 / 58
Asignación.
Si una expresión se utiliza como una orden por sí misma, su valor se
imprime y se pierde. Así pues, la orden 1/x simplemente imprime el
inverso de lo que sea el objeto x sin modicar su valor.
Podemos crear vectores con valores iniciales, FALSE, 0,0+0i, " ",
mediante la función que indica el tipo de dato y entre paréntesis el
numero de elementos a crear.
Ejemplo
x1<-logical(4)
Inicializa un vector de longitud 4 cuyos elementos son FALSE
x2<-numeric(4); x3<-complex(4)
Inicializa (a 0) vectores numéricos de longitud 4
x4<-character(4)
Inicializa un vector de caracteres de longitud 4
David Conesa, GEei t•E·ma (UV)
Introducción a R: Sesión 2
15 / 58
Operadores lógicos.
Los elementos de un objeto de tipo lógico tienen dos posibilidades,
FALSE o TRUE. Se pueden abreviar en F y T respectivamente.
Los objetos lógicos son generalmente fruto de una comparación.
Ejemplo
Si x <- 3
y <- x>12 produce un objeto lógico de longitud la de x con valor F o V
según se cumpla o no la condición (en este caso F)
Las comparaciones que dan un resultado lógico son:
<, <=, >, >=, ==, ! =.
Los objetos lógicos se pueden utilizar con la aritmética ordinaria, en
cuyo caso son transformados en vectores numéricos, FALSE se
convierte en 0 y TRUE en 1.
David Conesa, GEei t•E·ma (UV)
Introducción a R: Sesión 2
16 / 58
Operadores lógicos.
La aritmética entre objetos lógicos se puede llevar a cabo con los siguientes
operadores lógicos:
Operadores lógicos
Operador Operación
!x
x&y
x|y
xor(x,y)
all
any
Negación de x. Los T los convierte en F y viceversa.
Intersección, operador lógico y:
T y T da T, otra comparación da F
Unión, operador lógico o:
F y F da F, otra comparación da T.
Exclusivo OR, xor(T,F)==T, otra comparación da
Comentarios de: Curso Introducción R: Sesión 2 (0)
No hay comentarios