APLICANDO LOS CONOCIMIENTOS DE RSTUDIO
En este documento se presentan los ejercicios resuletos del taller #5 haciendo uso de rmarkdown
AUTORES
COLABORACIÓN
1.ls() sin argumentos, da el vector de nombres de variables
definidas.
2.a:b crea vector de enteros consecutivos, de a a
b.
3.c(…) da un vector con los argumentos …
concatenados.
4.length(x) da la longitud del vector argumento x.
5.sum(…) SUMa las componentes de los argumentos.
6.prod(…) PRODucto de las componentes de los
argumentos.
7.sort(x) da el vector argumento x reordenado de manera
creciente.
8.sort(x,decreasing=TRUE) lo mismo (pero
decreciente).
9.min(…) da el valor MÍNimo de los argumentos.
10.max(…) da el valor MÁXimo de los argumentos.
which(x) da el vector de “posiciones” donde x es TRUE. El
argumento suele ser una comparación.
\[ \frac{0,3.0,15}{0,3.0,15+0,2.0,8+0,5.0,12}\]
#
# Para el primer ejercicio se resolverán las siguientes
# multiplicaciones y divisiones que se encuentran en una fracción.
ejercicio1 <- (0.3*0.15)/((0.3*0.15)+(0.2*0.8)+(0.5*0.12))
ejercicio1
## [1] 0.1698113
\[ \frac{5^6}{6!}e^-5\]
#EJERCICIO 1.2
# b=5^6/6! e^(-5)
ejercicio2 <- ((5^6)/(factorial(6)))*exp(-5)
ejercicio2
## [1] 0.1462228
\[ \left(\begin{array}{ccc} 20\\ 7 \end{array}\right)0,4^7.0,6^{13} \]
#EJERCICIO 1.3
ejercicio3 <- ((factorial(20))/(factorial(7)*factorial(20-7))*(0.4^7)*(0.6^(13)))
ejercicio3
## [1] 0.1658823
\[ 1+2+3+..10001+1+2+3+..+1000\]
# Pasos:
# Para poder realizar esta operación necesitamos
# instalarnos las siguientes librerías.
# EJERCICIO N2 : SUMA 1
#library(stringr)
vec1 <- (1:1000)
vec2 <- (1:1000)
op1 <- sum(vec1)
op2 <- sum(vec2)
str_<-c(op1,op2)
\[ 1+2+4+8+16+..+10241+2+4+8+16..+1024\]
# EJERCICIO N2 : SUMA 2
a1<-1
n<-11
r<-2
x<-a1 * (r^n - 1) / (r - 1)
x
## [1] 2047
## [1] 2047
str_<-c(x,x)
crear el vector alumnos con 20 nombres
# VECTOR ALUMNOS
alumnos <- c("Alexandra", "Ricardo",
"Gabriela", "Joaquín", "Samantha", "Doris", "Juan",
"José", "Esteban", "Michelle", "Brenda", "Génesis",
"Emily", "Kevin", "Dennis", "Melanie", "Samuel", "Dámaris",
"Daniel", "Betty")
alumnos
## [1] "Alexandra" "Ricardo" "Gabriela" "Joaquín" "Samantha" "Doris"
## [7] "Juan" "José" "Esteban" "Michelle" "Brenda" "Génesis"
## [13] "Emily" "Kevin" "Dennis" "Melanie" "Samuel" "Dámaris"
## [19] "Daniel" "Betty"
#EJERCICIO 3.2
# Se necesita conocer el número de componentes del vector alumnos,
# para lo cual utilizaremos la función length que obtiene o establece
# la longitud de los vectores.
length(alumnos)
## [1] 20
#EJERCICIO 3.3
# Utilizando el vector alumnos se desea conocer las posiciones en las
# que se encuentra la letra “A”, para lo cual lo haremos de la siguiente
# manera.
#install.packages("htmlwidgets")
library(stringr)
#library(htmlwidgets)
str_detect(alumnos, "(a|á|A)")
## [1] TRUE TRUE TRUE TRUE TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE
## [13] FALSE FALSE FALSE TRUE TRUE TRUE TRUE FALSE
str_view_all(alumnos, "(a|á|A)")
## Warning: `str_view()` was deprecated in stringr 1.5.0.
## ℹ Please use `str_view_all()` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## [1] │ <A>lex<a>ndr<a>
## [2] │ Ric<a>rdo
## [3] │ G<a>briel<a>
## [4] │ Jo<a>quín
## [5] │ S<a>m<a>nth<a>
## [6] │ Doris
## [7] │ Ju<a>n
## [8] │ José
## [9] │ Esteb<a>n
## [10] │ Michelle
## [11] │ Brend<a>
## [12] │ Génesis
## [13] │ Emily
## [14] │ Kevin
## [15] │ Dennis
## [16] │ Mel<a>nie
## [17] │ S<a>muel
## [18] │ D<á>m<a>ris
## [19] │ D<a>niel
## [20] │ Betty
# Me demuestra las posiciones del vector con el objeto a encontrar
str_locate(alumnos,"(a|á|A)")
## start end
## [1,] 1 1
## [2,] 4 4
## [3,] 2 2
## [4,] 3 3
## [5,] 2 2
## [6,] NA NA
## [7,] 3 3
## [8,] NA NA
## [9,] 6 6
## [10,] NA NA
## [11,] 6 6
## [12,] NA NA
## [13,] NA NA
## [14,] NA NA
## [15,] NA NA
## [16,] 4 4
## [17,] 2 2
## [18,] 2 2
## [19,] 2 2
## [20,] NA NA
Para el presente ejercicio se solicita que cree un vector llamado notas el cuál contendrá la misma longitud que el vector alumnos, puesto que las notas ingresadas corresponderán a dichosestudiantes.
#
#VECTOR NOTAS
#EJERCICIO 4.1
notas <- c(9.5, 6.8, 10, 6.7, 7.8, 6.2, 7,
8.35, 8, 6.99,
7.45, 7.65, 5, 6, 7.23,
8.32, 8, 9, 10, 5.65)
#EJERCICIO 4.2
# Se necesita conocer el número de componentes del vector alumnos,
# para lo cual utilizaremos la función length que obtiene o establece
# la longitud de los vectores.
length(notas)
## [1] 20
#EJERCICIO 4.3
# se desea conocer la suma de las calificaciones
# que ingresó, para
# realizar utilizará función sum.
suma_notas <- sum(notas)
suma_notas
## [1] 151.64
#EJERCICIO 4.4
# Se solicita que indique cuál es la media
# aritmética obtenida por el curso motivo por el cual el docente
# se ayuda de la función mean.
med_art <- mean(notas)
med_art
## [1] 7.582
#EJERCICIO 4.5
# Se quiere saber en qué posiciones están las notas mayores de 7
which(notas >= 7, notas)
## [1] 1 3 5 7 8 9 11 12 15 16 17 18 19
#EJERCICIO 4.6
#VVisualiza las notas ordenadas de menor a mayor
notas_menor_mayor <- sort(notas)
notas_menor_mayor
## [1] 5.00 5.65 6.00 6.20 6.70 6.80 6.99 7.00 7.23 7.45 7.65 7.80
## [13] 8.00 8.00 8.32 8.35 9.00 9.50 10.00 10.00
# EJERCICIO 4.7
#Visualiza las notas ordenadas de mayor a menor
notas_mayor_menor <- sort(notas, decreasing = T)
notas_mayor_menor
## [1] 10.00 10.00 9.50 9.00 8.35 8.32 8.00 8.00 7.80 7.65 7.45 7.23
## [13] 7.00 6.99 6.80 6.70 6.20 6.00 5.65 5.00
# EJERCICIO 4.8
#¿Cuál ha sido la nota máxima?
#Antes de comunicar las notas obtenidas se desea saber la nota máxima
#obtenida por sus alumnos y aplica la función max.
nota_max <- max(notas)
nota_max
## [1] 10
# EJERCICIO 4.9
#¿En qué posición del vector está esa nota máxima?
notasmax1z<-which(notas>=10)
notasmax1z
## [1] 3 19
En este ejercicio se realizarán algunas operaciones con los dos vectores previamente creados en ejercicios con anterioridad.
#EJERCICIO 5.1
# Se requiere visualizar las notas de los 10 primeros alumnos y
# se aplican las siguientes condiciones y para una mejor visualización
# se crea una tabla.
op3 <- notas[c(1:10)]
op3
## [1] 9.50 6.80 10.00 6.70 7.80 6.20 7.00 8.35 8.00 6.99
op4 <- alumnos[c(1:10)]
op4
## [1] "Alexandra" "Ricardo" "Gabriela" "Joaquín" "Samantha" "Doris"
## [7] "Juan" "José" "Esteban" "Michelle"
op5 <- data.frame(alumnos, notas)
op5
## alumnos notas
## 1 Alexandra 9.50
## 2 Ricardo 6.80
## 3 Gabriela 10.00
## 4 Joaquín 6.70
## 5 Samantha 7.80
## 6 Doris 6.20
## 7 Juan 7.00
## 8 José 8.35
## 9 Esteban 8.00
## 10 Michelle 6.99
## 11 Brenda 7.45
## 12 Génesis 7.65
## 13 Emily 5.00
## 14 Kevin 6.00
## 15 Dennis 7.23
## 16 Melanie 8.32
## 17 Samuel 8.00
## 18 Dámaris 9.00
## 19 Daniel 10.00
## 20 Betty 5.65
#EJERCICIO 5.2
# Una vez obtenidas las notas de los 10 primeros alumnos
# se desea conocer la suma de las mismas que están un nuevo vector
sum(op3)
## [1] 77.34
#EJERCICIO 5.3
# Se necesita corroborar la información proporcionada
# de cuántos alumnos cursan la asignatura de programación,
# para esto se consulta mediante la siguiente función.
total_alumnos <- length(alumnos)
total_alumnos
## [1] 20
#EJERCICIO 5.4
# Se desea conocer la suma de las notas de los alumnos antes
# mencionados y se procede a utilizar la función sum.
suma_notas <- sum(notas)
suma_notas
## [1] 151.64
#EJERCICIO 5.5
#¿Cuántos alumnos han aprobado la asignatura?.
aprob <-(notas >= 7)
aprob
## [1] TRUE FALSE TRUE FALSE TRUE FALSE TRUE TRUE TRUE FALSE TRUE TRUE
## [13] FALSE FALSE TRUE TRUE TRUE TRUE TRUE FALSE
data.frame(aprob,alumnos)
## aprob alumnos
## 1 TRUE Alexandra
## 2 FALSE Ricardo
## 3 TRUE Gabriela
## 4 FALSE Joaquín
## 5 TRUE Samantha
## 6 FALSE Doris
## 7 TRUE Juan
## 8 TRUE José
## 9 TRUE Esteban
## 10 FALSE Michelle
## 11 TRUE Brenda
## 12 TRUE Génesis
## 13 FALSE Emily
## 14 FALSE Kevin
## 15 TRUE Dennis
## 16 TRUE Melanie
## 17 TRUE Samuel
## 18 TRUE Dámaris
## 19 TRUE Daniel
## 20 FALSE Betty
aprob <- sum(notas >= 7)
aprob
## [1] 13
#EJERCICIO 5.6
#De los alumnos que cursaron la asignatura. ¿Qué porcentaje de alumnos aprobó la misma?
porcent_aprob <- (aprob*100)/20
cat("El porcentaje de alumnos aprobados es: ",porcent_aprob, "%")
## El porcentaje de alumnos aprobados es: 65 %
# EJERCICIO 5.7
# ¿Cuáles han sido las notas máximas y mínimas obtenidas por
# los alumnos en la asignatura de programación?
# nota mínima
nota_min <- min(notas)
nota_min
## [1] 5
# nota máxima
nota_max<-max(notas)
nota_max
## [1] 10
# se visualiza en un data frame
notas_max_min<-data.frame(nota_max,nota_min)
notas_max_min
## nota_max nota_min
## 1 10 5
#EJERCICIO 5.8
#¿De qué alumnos son las máximas y las mínimas notas?
# Para ello haremos uso del dataframe creado para obtener el resultado.
op5[op5$notas==max(notas), ];op5[op5$notas==min(notas), ]
## alumnos notas
## 3 Gabriela 10
## 19 Daniel 10
## alumnos notas
## 13 Emily 5
#EJERCICIO 5.9
# Cuál es la media de los alumnos, teniendo en cuenta
# sólo a los que han aprobado
# Se crea una funcion que contengan las notas mayores a 7 que es la
# nota mínima para obtener aprobación en la asignatura.
med_aprob <- (notas[notas >= 7]); med_aprob
## [1] 9.50 10.00 7.80 7.00 8.35 8.00 7.45 7.65 7.23 8.32 8.00 9.00
## [13] 10.00
total_aprob <- mean(med_aprob); total_aprob
## [1] 8.330769