Nombre:Karla Teresa Rojas Moreno
Este documento tiene como objetivo mostrar a través de ejercicios comentados y con el uso de chunks lo aprendido en los cursos de r básico e intermedio, para ello se considera el uso de R Markdown en salida html. Entre los temas considerados se muestra el uso de generación de vectores y su operación, uso de la función rep, la generación de matrices y la estimación de su diagonal, traza y la resolución de un sistema de ecuaciones,importar datos, además del uso en la base de datos de educación de operadores comparativos y lógicos, así como en un nuevo data frame agregar y quitar columnas. En cuanto a la programación se hace uso de los condicionantes if-else,ifelse, bucle while y bucle for. Finalmente se presenta el uso de funciones sin parámetros, con parámetros y con parámetros por defecto. Así como el ejemplo de un gráfico.
La presentación del presente reporte ha significado un reto para su servidora, sin embargo también se ha convertido en una oportunidad de aprendizaje, ya que no tenía conocmientos previos en r. Por ello desde el tema de generación de vectores es una base necesaria para el resto de ejercicios. Por ejemplo:
x<-seq (0,1, by=0.1)^0.5
x
[1] 0.0000000 0.3162278 0.4472136 0.5477226 0.6324555 0.7071068 0.7745967
[8] 0.8366600 0.8944272 0.9486833 1.0000000
y<-rep(1:5,each=2)
y
[1] 1 1 2 2 3 3 4 4 5 5
z=x+y
z
[1] 1.000000 1.316228 2.447214 2.547723 3.632456 3.707107 4.774597 4.836660
[9] 5.894427 5.948683 2.000000
E<-matrix (c(5,8,3,6,6,7,5,4), ncol=2, byrow=TRUE)
E
[,1] [,2]
[1,] 5 8
[2,] 3 6
[3,] 6 7
[4,] 5 4
Cálculo de diagonal de la matriz anterior
diag (E)
[1] 5 6
Traza de diagonal
sum(diag(E))
[1] 11
Estimación de la determinante de una matriz
MATRIZ<-matrix(c(12,34,56,78,91,12,34,5,12,45,85,74,5,85,96,5),nrow=4)
MATRIZ
[,1] [,2] [,3] [,4]
[1,] 12 91 12 5
[2,] 34 12 45 85
[3,] 56 34 85 96
[4,] 78 5 74 5
det(MATRIZ)
[1] 10236822
Estimación de la inversa de una matriz
solve(MATRIZ)
[,1] [,2] [,3] [,4]
[1,] 0.0108956666 0.0579881139 -5.316298e-02 0.024035682
[2,] 0.0111397854 -0.0005941297 2.246791e-05 -0.001470964
[3,] -0.0122756848 -0.0625533979 5.662402e-02 -0.011497709
[4,] 0.0005679497 0.0217698422 -8.715400e-03 -0.003319585
Resolución de un sistema de ecuaciones
Z<-matrix(c(1,3,5,89,1,1,3,566,12,4,5,7,556,5,6,57),nrow=4)
Z
[,1] [,2] [,3] [,4]
[1,] 1 1 12 556
[2,] 3 1 4 5
[3,] 5 3 5 6
[4,] 89 566 7 57
solve(MATRIZ,Z)
[,1] [,2] [,3] [,4]
[1,] 2.0582208 13.5135909 0.26513531 7.3989872
[2,] -0.1214461 -0.8219528 0.12111649 6.1070399
[3,] -0.9401119 -6.4126603 -0.19488568 -7.4536730
[4,] -0.2731426 -1.8826935 0.02708067 0.1831205
Función rbind()
rbind(Z, c(1:4))
[,1] [,2] [,3] [,4]
[1,] 1 1 12 556
[2,] 3 1 4 5
[3,] 5 3 5 6
[4,] 89 566 7 57
[5,] 1 2 3 4
Función cbind()
cbind(Z,c(5,3,7,6))
[,1] [,2] [,3] [,4] [,5]
[1,] 1 1 12 556 5
[2,] 3 1 4 5 3
[3,] 5 3 5 6 7
[4,] 89 566 7 57 6
Z
[,1] [,2] [,3] [,4]
[1,] 1 1 12 556
[2,] 3 1 4 5
[3,] 5 3 5 6
[4,] 89 566 7 57
Importar datos a R
library(readxl)
educacion <- read_excel("educacion.xlsx")
View(educacion)
Selección de datos usando comparativos
educacion[educacion$Empleo>10,]
Selección de datos usando el operador lógico &
educacion[educacion$Maestros>7 & educacion$Lectura>20,]
Declarar un data frame
colonias<-data.frame(nombre=c("solidaridad", "dorado", "pintores","xochimilco"),
habitantes=c(600,560,200,823),
agua=c(FALSE,FALSE,TRUE,FALSE))
colonias
Agregar columnas a un data frame
colonias$participacion<-c(TRUE,FALSE,FALSE,TRUE)
colonias
Quitar columnas a un data frame
colonias$habitantes<-NULL
colonias
Programación con condicional if-else
colonia<- "dorado"
if(colonia=="dorado"){
print("Colonia dorado")
}else{
print("Otra colonia")
}
[1] "Colonia dorado"
Programación con condicional ifelse()
habitantes<-c(600,560,200,823)
ifelse(habitantes>500,"Atención prioritaria", "Atención mediano plazo")
[1] "Atención prioritaria" "Atención prioritaria"
[3] "Atención mediano plazo" "Atención prioritaria"
Programación con bucle while
contador<-6
while (contador<=6){
print(contador)
contador<-contador+3
}
[1] 6
Programación con bucle for
for (i in 4:10){
print(i*5)}
[1] 20
[1] 25
[1] 30
[1] 35
[1] 40
[1] 45
[1] 50
Funciones con ausencia de parámetros
a<-10
b<-23
concatena<- function(){
return(a+b)
}
concatena ()
[1] 33
Funciones con parámetros
Matriz_karla<-function(x,y){G<- matrix(rep(c(x,y),4),ncol = 4)
return(G)
}
Matriz_karla (4,30)
[,1] [,2] [,3] [,4]
[1,] 4 4 4 4
[2,] 30 30 30 30
Funciones con parámetros por defecto
potencia<-function(x, n=1){
t<-x^n
return(t)
}
potencia (2)
[1] 2
potencia(3, n=360)
[1] 5.802988e+171
Gráfico
hist( c(4,5,4,6,7,3,7,6,5,4,6,7,4,5,6,6,6,5,7,6,5,4,5,6,7,8,6,5,4,6,8,3),main="Distribución de la edad",xlab="Edad",xlim = c(2,9), col= "blue",freq = FALSE )
Lo aprendido hasta ahora da herramientas no solo de estimación, sino también de representación. R me ha parecido un lenguaje de programación estadístico amable que me apoyara en el trabajo, además el hecho de que se pueda ejecutar de manera libre potencia su uso. A diferencia de otros paquetes estadísticos me llama la atención la compatabilidad con la parte espacial que estaremos aprendiendo en las próximas sesiones.Gracias.