EJERCIO 1
En la siguiente sección utilizaremos la librería “readxl” para poder cargar nuestra base de datos.
library(readxl)Importamos la base de datos con la ayuda de la función read_excel y continuamos convirtiendo la base en un marco de datos (Data frame), al cual nombramos “datos”, con la finalidad de poder manipular con mayor facilidad el contenido.
Jalisco <- read_excel("Jalisco.xlsx")
datos <- data.frame(Jalisco)1)
Los 10 municipios con mayor proporción de población con alguna discapacidad.
datos1 <- datos$NOM_MUN[order(datos$PCON_DISC)] # ordenamos los datos con la función order
# seleccionamos las columnas deseadas conel signo de $
print(tail(datos1,10)) # Ya que estan ordenadas de menor a mayor, utilizamos la función tail, para tomar los ultimos 10 nombres, los cuales corresponden a lo requerido## [1] "Tepatitlán de Morelos" "Ocotlán" "Lagos de Moreno"
## [4] "El Salto" "Puerto Vallarta" "Tonalá"
## [7] "Tlajomulco de Zúñiga" "San Pedro Tlaquepaque" "Zapopan"
## [10] "Guadalajara"
# La función print nos auxilia para imprimir los municipios2)
Los 30 municipios con mayor proporción de población con 65 años o más.
datos2 <- datos$NOM_MUN[order(datos$POB65_MAS)]
print(tail(datos2,30))## [1] "Cocula" "Ayotlán" "Tomatlán"
## [4] "Tuxpan" "San Martín Hidalgo" "Poncitlán"
## [7] "Teocaltiche" "Jocotepec" "Encarnación de Díaz"
## [10] "Tamazula de Gordiano" "San Juan de los Lagos" "Zapotlanejo"
## [13] "Atotonilco el Alto" "Arandas" "Tala"
## [16] "Autlán de Navarro" "La Barca" "Ameca"
## [19] "Chapala" "Ocotlán" "El Salto"
## [22] "Zapotlán el Grande" "Tepatitlán de Morelos" "Lagos de Moreno"
## [25] "Puerto Vallarta" "Tlajomulco de Zúñiga" "Tonalá"
## [28] "San Pedro Tlaquepaque" "Zapopan" "Guadalajara"
3)
Los 30 municipios con mayor población económicamente activa
datos3 <- datos$NOM_MUN[order(datos$PEA)]
print(tail(datos3,30))## [1] "Sayula" "Tomatlán"
## [3] "Teocaltiche" "Ayotlán"
## [5] "Cihuatlán" "Tequila"
## [7] "Jocotepec" "Poncitlán"
## [9] "Encarnación de Díaz" "Chapala"
## [11] "Ameca" "Atotonilco el Alto"
## [13] "La Barca" "Autlán de Navarro"
## [15] "Ixtlahuacán de los Membrillos" "Zapotlanejo"
## [17] "San Juan de los Lagos" "Arandas"
## [19] "Tala" "Ocotlán"
## [21] "Zapotlán el Grande" "Tepatitlán de Morelos"
## [23] "Lagos de Moreno" "El Salto"
## [25] "Puerto Vallarta" "Tonalá"
## [27] "San Pedro Tlaquepaque" "Tlajomulco de Zúñiga"
## [29] "Guadalajara" "Zapopan"
4)
Los 10 municipios con mayor proporción de población sin educación básica.
datos4 <- datos$NOM_MUN[order(datos$P15YM_SE)]
print(tail(datos4,10))## [1] "Arandas" "Puerto Vallarta" "Tepatitlán de Morelos"
## [4] "El Salto" "Lagos de Moreno" "Tlajomulco de Zúñiga"
## [7] "Tonalá" "San Pedro Tlaquepaque" "Guadalajara"
## [10] "Zapopan"
5)
Los 10 municipios con mayor población indígena
datos5 <- datos$NOM_MUN[order(datos$PHOG_IND)]
print(tail(datos5,10))## [1] "Tomatlán" "Poncitlán"
## [3] "Zacoalco de Torres" "Unión de San Antonio"
## [5] "Degollado" "Tlajomulco de Zúñiga"
## [7] "Cocula" "Juanacatlán"
## [9] "San Ignacio Cerro Gordo" "Cihuatlán"
6)
Los 10 municipios con mayor proporción de viviendas particulares habitadas con internet
datos6 <- datos$NOM_MUN[order(datos$VPH_INTER)]
print(tail(datos6,10))## [1] "Zapotlán el Grande" "Lagos de Moreno" "Tepatitlán de Morelos"
## [4] "El Salto" "Puerto Vallarta" "Tonalá"
## [7] "San Pedro Tlaquepaque" "Tlajomulco de Zúñiga" "Guadalajara"
## [10] "Zapopan"
EJERCICIO 2
7)
Demostrar que la siguiente cadena de texto es un palíndromo: A mamá Roma le aviva el amor a papá y a papá Roma le aviva el amor a mamá
En la siguiente sección utilizaremos las siguientes librerias.
# install.packages("stringr")
# install.packages("htmltools")
# install.packages("htmlwidgets")
library(stringr, htmltools)Para comprobar que la cadena de texto es palíndromo, realizamos una función que detecta si el texto ingresado es o no de este tipo.
palindromo <- function(texto){ #Inicia la creación de la función
textoInv <- "" # Nueva cadena de texto, vacia.
texto <- gsub(" ", "", texto) # Quita espacios
texto <- str_to_lower(texto) # Convierte todo el texto a minusculas
texto <- chartr("áéíóú", "aeiou", texto) #Quita acentos
for(i in 0:nchar(texto)){ #inicio de for, para recorrer la cadena
# Seleccionar letras en orden descendente
letra <- substr(texto, start = nchar(texto) - i, stop = nchar(texto) - i)
# Agregamos la letra a la cadena nueva
textoInv <- paste(textoInv, letra)
# Quitar espacios en la nueva cadena
textoInv <- gsub(" ", "", textoInv)
} # Termina For
ifelse(textoInv == texto, # compara las dos cadenas
"La cadena de texto que introdujo es un palíndromo", # mensaje si son iguales
"La cadena de texto que introdujo NO es un palíndromo") # mensaje si difieren
} # Termina la funciónPor último, ya creada la función la usamos para verificar si el texto es palíndromo.
palindromo("A mamá Roma le aviva el amor a papá y a papá Roma le aviva el amor a mamá")## [1] "La cadena de texto que introdujo es un palíndromo"
EJERCICIO 3
8)
Probar si la siguiente matriz (X) es definida positiva y, si sí obtener su inversa. Y una vez obtenida su inversa, comprobar que XX−1 = I
Para crear la matríz primero formulamos los vectores.
vector_1 <- c(3,4,-1)
vector_2 <- c(2,-1,3)
vector_3 <- c(2,2,1)
print(vector_1)## [1] 3 4 -1
print(vector_2)## [1] 2 -1 3
print(vector_3)## [1] 2 2 1
Creamos la matríz, indicando que los vectores sean tomados de forma horizontal
matriz <- rbind(vector_1, vector_2, vector_3) #vectores horizontales
matriz## [,1] [,2] [,3]
## vector_1 3 4 -1
## vector_2 2 -1 3
## vector_3 2 2 1
Para probar si es definida positiva, haremos uso del siguiente teorema:
A es una matriz y es definida positiva si y sólo si A es simétrica y todos sus eigenvalores son positivos.
Hacemos uso de la función eigen, la cual nos regresa los eigenvalores y los eigenvectores
lambdas <- eigen(matriz)
lambdas$values #seleccionamos los eigenvalores## [1] 5.1195839 -2.8685958 0.7490118
lambdas$values > 0 # verificamos si todas las entradas son positivas## [1] TRUE FALSE TRUE
Finalmente dado que uno de los eigenvalores no es positivo, la matríz no es definida positiva.