Practica1 R
Practica1 R
Temario
A- Tipos de datos básicos y estructuras de datos
B- Atributos
Para poder utilizar R, es necesario entender los tipos de datos básicos y las
estructuras de datos y saber cómo manejarlos.
En R todo es un objeto.
Existen varios tipos de objetos.
El más simple y básico es el vector (atómico).
Vector Atómico
Todos los elementos de un vector atómico deben ser del mismo tipo.
Los cuatro tipos más importantes de vectores atómicos son lógico, entero, doble
y carácter. Los de tipo raw y complejo son raramente usados durante el análisis
de datos, por lo tanto, no discutiremos sobre ellos aquí.
varTexto="Texto" varTexto<-"Texto"
varBoolean=TRUE varBoolean<-TRUE Sensibilidad
varNum=2 varNum<-2 Mayusculas -
varInt=2L varInt<-2L Minusculas
Ejemplo:
estaciones<-c('Toreadora','La Virgen','Chirimachay','Tres
Cruces','Balzaín','Sayausí')
estaciones
## [1] "Toreadora" "La Virgen" "Chirimachay" "Tres Cruces" "Balzaín"
## [6] "Sayausí"
coordsX <-c(697618.73,701110.74,705703.88,695540.08,718267.1,714620)
coordsX
## [1] 697618.7 701110.7 705703.9 695540.1 718267.1 714620.0
Otra forma de crear vectores es por medio del operador :, el cual crea una
secuencia de números desde un valor inicial a un valor final (con pasos o
intervalos de 1): numeroInicial:numeroFinal
Ejemplo:
R provee varias funciones para examinar las características de los objetos que
creamos.
Ejemplos:
length(estaciones)
## [1] 6
typeof(estaciones)
## [1] "character"
length(coordsX)
## [1] 6
typeof(coordsX)
## [1] "double"
R intenta crear el vector resultante de forma que todos los elementos sean del
mismo tipo. A esto se le denomina Coerción
## [1] 1 4
Todos los elementos de un vector atómico deben ser del mismo tipo, así que
cuando intentamos combinar elementos de diferentes tipos ellos deben ser
Coercionados al tipo más flexible.
Los tipos de datos desde el menos al mas flexible son: logical, integer, double, y
character.
Ejercicios:
c(1, FALSE)
## [1] 1 0
c("a", 1)
## [1] "a" "1"
c(TRUE, 1L)
## [1] 1 1
Estructuras de datos
Vectores atómicos
Listas
Matrices y Arrays
Factores
Data frames
Listas
Cada uno de los elementos de la lista puede a su vez contener varios valores
individuales.
Para crear este tipo de objeto se usa la función list() separando cada elemento
con una coma.
Las listas son utilizadas para construir estructuras de datos más complicadas,
como los data frames.
Matrices y Arrays
## [2,] 2 4 6
# Un vector como argumento para especificar las dimensiones del array
b <- array(1:12, c(2, 3, 2))
b
## , , 1
##
## [,1] [,2] [,3]
## [1,] 1 3 5
## [2,] 2 4 6
##
## , , 2
##
## [,1] [,2] [,3]
## [1,] 7 9 11
## [2,] 8 10 12
Ahora crearemos una matriz a partir del vector estaciones que contiene nombres
de estaciones
donde:
Factores
unclass(gender)
## [1] 2 1 1 2
## attr(,"levels")
## [1] "female" "male"
gender
## [1] male female female male
## Levels: female male
as.character(gender)
## [1] "male" "female" "female" "male"
Los factores son ?tiles cuando conocemos los posibles valores que una variable
puede tomar.
Data frames
El tipo de objeto data frame es una versión de dos dimensiones de una lista.
Los data frames agrupan vectores (del mismo tamaño), donde cada uno de ellos
representa una columna del data frame, así pues cada columna puede ser de un
tipo diferente.
Para crear un data frame utilizamos la función data.frame(), la cual toma vectores
como entrada:
El tipo factor es uno de los “preferidos” de R, por lo tanto, cualquier dato que
corresponda inicialmente a texto podría ser interpretado por R como un factor. Sin
embargo, esto no siempre es lo que se desea y para evitar la creación
(conversión) a este tipo en las columnas del data frame podemos usar el
argumento stringsAsFactors = FALSE
df$descripcion
## [1] "Toreadora" "Chirimachay" "La Virgen"
df$id
## [1] 1 2 3
desc <- df$descripcion
desc
## [1] "Toreadora" "Chirimachay" "La Virgen"
class(desc)
## [1] "character"
typeof(desc)
## [1] "character"
B- Atributos
Los atributos pueden ser identificados por un nombre (e.g names) y están
asociados a un objeto R (lista).
Estos atributos no afectan los valores del objeto como tal sino que añaden
información del objeto R para facilitar su manipulación.
Por ejemplo es común que el objeto de tipo data.frame tenga asociado los
nombres de sus filas y columnas.
Los atributos pueden ser accedidos individualmente con attr(), o a todos (como
una lista) con attributes().
y <- 1:10
attr(y, "my_attribute") <- "This is a vector"
attr(y, "my_attribute")
## [1] "This is a vector"
Existen atributos que R incluye por defecto, los más importantes son:
Cada uno de estos atributos tienen una función de acceso tanto para asignar
como para recuperar sus valores. Cuando trabajamos con estos atributos, se debe
utilizar names(x), dim(x).
names(coordsX) ## NULL
## NULL
names(coordsX) <- c("E1", "E2", "E3", "E4", "E5", "E6")
names(coordsX)
## [1] "E1" "E2" "E3" "E4" "E5" "E6"
attributes(coordsX)
## $names
## [1] "E1" "E2" "E3" "E4" "E5" "E6"
coordsX + 1
## E1 E2 E3 E4 E5 E6
## 697619.7 701111.7 705704.9 695541.1 718268.1 714621.0