En este breve documento, haremos una ilustración del paradigma funcional y orientado a objetos en R mediante ilustraciones en la estructura básica de los datos.
Generemos un vector con los números primos del 1 al 20 y guardemoslo en una variable llamada primos.
primos = c(2,3,5,7,11,13,17)
# Veamos nuestro vector
primos
## [1] 2 3 5 7 11 13 17
Generemos un vector nombrado con las palabras “Bogotá”, “Teusaquillo”, “Universidad Nacional”. Luego, asignemoslo a una variable llamada lugares.
lugares = c(
"Ciudad" = "Bogotá",
"Localidad" = "Teusaquillo",
"Locacion" = "Universidad Nacional"
)
# Veamos nuestro vector nombrado
lugares
## Ciudad Localidad Locacion
## "Bogotá" "Teusaquillo" "Universidad Nacional"
Generemos una matríz de dimensiones 3x4 a partir del vector vec_for_matrix. La matríz se llamará matriz_1.
vec_for_matrix = 1:12
matriz_1 = matrix(vec_for_matrix, nrow = 3, byrow = F)
# Visualice el resultado
matriz_1
## [,1] [,2] [,3] [,4]
## [1,] 1 4 7 10
## [2,] 2 5 8 11
## [3,] 3 6 9 12
Generemos una lista de dos elementos y será asignada a una variable llamada lista_1.
El primer elemento debe llamarse “nums” y debe ser un vector con los números del 1 al 12. El segundo elemento debe llamarse “letras” y debe tener las letras minúsculas de la “a” a la “l”.
# Generación de vectores
nums = c(1:12);nums
## [1] 1 2 3 4 5 6 7 8 9 10 11 12
letras = letters[1:12];letras
## [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l"
# Agregamos los vectores a nuestra lista
lista_1 = list(
"Nums" = nums,
"Letras" = letras
)
# Veamos nuestra lista
lista_1
## $Nums
## [1] 1 2 3 4 5 6 7 8 9 10 11 12
##
## $Letras
## [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l"
Creemos una lista cuyo primer elemento sea el vector primos, el segundo elemento debe ser el vector nombrado lugares, el tercer elemento debe ser la matríz matriz_1 y el cuarto elemento debe ser la lista lista_1.
Los nombres de cada elemento deben corresponder a los nombres de las variables. Es decir, el primer elemento de esta lista debe llamarse “primos”, el segundo, “lugares”, y así sucesivamente. Dicha lista se guardará en una variable llamada lista_grande.
# Generamos nuestra lista con los elementos solicitados:
lista_grande = list(
"Primos" = primos,
"Lugares" = lugares,
"Matriz 1" = matriz_1,
"Lista 1" = lista_1
)
# Hemos asignado un nombre a cada elemento previamente construido, veamos nuestra lista ahora.
lista_grande
## $Primos
## [1] 2 3 5 7 11 13 17
##
## $Lugares
## Ciudad Localidad Locacion
## "Bogotá" "Teusaquillo" "Universidad Nacional"
##
## $`Matriz 1`
## [,1] [,2] [,3] [,4]
## [1,] 1 4 7 10
## [2,] 2 5 8 11
## [3,] 3 6 9 12
##
## $`Lista 1`
## $`Lista 1`$Nums
## [1] 1 2 3 4 5 6 7 8 9 10 11 12
##
## $`Lista 1`$Letras
## [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l"
Ahora a partir de este momento, todos los procedimientos se trabajaran sobre la variable lista_grande
Cuando se solicite acceder a elementos de lista_grande mediante indexación por corchetes, debe hacerse como el siguiente ejemplo
# lista_grande[[2]]
# Así se accedería al elemento "lugares"
Cuando se solicite acceder a elementos de lista_grande usando el signo dolar ($), debe hacerse como el siguiente ejemplo
# lista_grande$primos
# Así se accedería al elemento "primos"
Usando indexación con corchetes, obtengamos la media del elemento “primos” de lista_grande.
# Con la función "mean", calculamos la media
mean(lista_grande[[1]])
## [1] 8.285714
Accediendo al elemento “letras” del elemento “lista_1” de la lista lista_grande usando el signo dolar ($), convierta las letras a mayúsculas.
# Con "toupper" convertiremos los carácteres en mayusculas.
toupper(lista_grande$`Lista 1`$Letras)
## [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L"
Usando el signo dolar ($), muestre los nombres de elemento “lugares” de la lista lista_grande.
# Usamos el comando "names" para esta tarea.
names(lista_grande$Lugares)
## [1] "Ciudad" "Localidad" "Locacion"
Usando el signo dolar ($), sume todos los elementos del vector “nums” del elemento “lista_1” de la lista lista_grande.
# Sum nos permite sumar los números dentro del vector.
sum(lista_grande$`Lista 1`$Nums)
## [1] 78
Hagamos lo mismo que el punto anterior, pero usando indexación con corchetes en vez del acceso a elementos con el signo dolar ($). Debemos llegar al mismo resultado.
# Si usamos la versión con números veremos que:
sum(lista_grande[[4]][[1]])
## [1] 78
# Usando la versión con los nombres asignados:
sum(lista_grande[["Lista 1"]][["Nums"]])
## [1] 78
Usando el signo dolar ($), accedamos al elemento “matriz_1” de la lista lista_grande y calculemos sus dimensiones.
# Usamos "dim" para conocer las dimensiones de nuestra matriz.
dim(lista_grande$`Matriz 1`)
## [1] 3 4
Con esto, terminamos los ejercicios para ver algunas de las funciones básicas en R.