UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE CIENCIAS ECONÓMICAS

INGENIERÍA EN ESTADÍSTICA

Autores: Caranqui Vanessa, Cevallos Gabriela, Loachamin Erika, Rosero Lennyn

Fecha de Publicación: 2022-12-18

Docente: Ing. Francisco Valverde

Ejercicios con Vectores en R

Primeras funciones importantes de R:

Las siguientes funciones/operadores actúan componente por componente, devolviendo otro vector de igual tamaño:

EJERCICIO 1

Calcula los valores aproximados de:

\[ \frac{0.3*0.15}{0.3*0.15+0.2*0.8+0.5*0.12}, \frac{5^6}{6!}e^-5, \left(\begin{array}{c} {20}\\ {7} \end{array}\right)0.4^70.6^{13} \]

  1. Para la primera operación, se utilizarán operaciones básicas como suma, resta, multiplicación y división.
eje1 <- (0.3*0.15)/((0.3*0.15)+(0.2*0.8)+(0.5*0.12))
eje1
## El valor aproximado es:  0.1698113
  1. La segunda operación requiere de más funciones matemáticas como la exponencial y el factorial.
eje2 <- (5^6/factorial(6))*exp(-5)
eje2
## El valor aproximado es:  0.1462228
  1. Para resolver el tecer problema, es necesaria la utilización de la siguiente fórmula:

\[ \left(\begin{array}{c} {n}\\ {k} \end{array}\right) = \frac {n!}{k!(n-k)!} \]

n <- 20
k <- 7

part1 <- factorial(n)/(factorial(k)*factorial(n-k))

part2 <- (0.4^7)*(0.6^13)

r <- part1*part2
r
## [1] 0.1658823

EJERCICIO 2

Realiza las siguientes sumas:

\[ a. \ 1+2+3+...+1000 \ 1+2+3+...+1000 \] \[ b. \ 1+2+4+8+16+...+1024 \ 1+2+4+8+16+...+1024 \] a) Para el literal a), se crean dos vectores con una misma longitud y componentes, para después sumarlos.

v1 <- 1:1000
v1s <- sum(v1)

v2 <- 1:1000
v2s <- sum(v2)

rs <- c(v1s, v2s)
rs

Una vez realizado lo previamente mencionado, se crea un último vector que contendrá ambas sumas.

## [1] 500500 500500
  1. En cuanto al segundo literal, se requiere de la función while, la cual nos dará la opción de colocar una condición, en este caso:

a <- 1
s <- 0

while (a <= 1024) {
  s = s+a
  a = a*2
}
print(s)

v3 <- c(s, s)
v3

Para poder ejecutar el comando de condición, se deben inicializar las variables necesarias para el cálculo.

## [1] 2047 2047

EJERCICIO 3

El vector alumnos representa los nombres de una serie de alumnos.

Crear el vector alumnos con 20 nombres.

Esto se realiza mediante la asignación de una variable.

alumnos <- c("Esteban", "Vanessa", "Kevin", "Javier", "Andrés"
             , "Paulina", "Aracely", "Israel", "Viviana", "José"
             , "María", "Génesis", "Luis", "Cristina", "Jefferson"
             , "Joel", "Camilo", "Jonathan", "Navil", "Samantha")
  1. Visualízalo en pantalla.
##  [1] "Esteban"   "Vanessa"   "Kevin"     "Javier"    "Andrés"    "Paulina"  
##  [7] "Aracely"   "Israel"    "Viviana"   "José"      "María"     "Génesis"  
## [13] "Luis"      "Cristina"  "Jefferson" "Joel"      "Camilo"    "Jonathan" 
## [19] "Navil"     "Samantha"
  1. ¿Cuántos componentes tiene el vector alumnos?

Para este proceso, se utilizará el comando lenght.

length(alumnos)
## [1] 20
  1. ¿En qué posiciones del vector alumnos está la letra ‘A’?

Para obtener la posición de algún componente del vector, se utilizará el comando substr, el cual sirve para extraer una subcadena y, el comando which que mostrará dicha posición.

letraA <- substr(alumnos, 1, 1)
letraA

which(letraA == "A")
##  [1] "E" "V" "K" "J" "A" "P" "A" "I" "V" "J" "M" "G" "L" "C" "J" "J" "C" "J" "N"
## [20] "S"
## [1] 5 7

EJERCICIO 4

El vector notas representa la nota de un examen, de los mismos alumnos cuyo lista se ha guardado en el vector alumnos y en el mismo orden.

Crear el vector notas.

Esto se realiza mediante la asignación de una variable.

notas <- c(10, 14, 12, 2, 16,
           4, 20, 5, 8, 7,
           6, 10, 15, 16, 18,
           13, 19, 17, 16, 11)
  1. Visualízalo en pantalla.
##  [1] 10 14 12  2 16  4 20  5  8  7  6 10 15 16 18 13 19 17 16 11
  1. ¿Cuántas componentes tiene?

Para este proceso, se utilizará el comando lenght.

length(notas)
## [1] 20
  1. ¿Cuánto suman todas las notas?

Para obtener la suma de los componentes de un vector, es necesario el comando sum.

a1 <- sum(notas)
a1
## [1] 239
  1. ¿Cuál es la media aritmética de todas las notas?

En este literal, se utilizará la funión mean, la cual nos proporcionará el valor de la media aritmética de nuestra variable.

a2 <- mean(notas)
a2
## [1] 11.95
  1. ¿En qué posiciones están las notas mayores de 7?

Como se mencionó anteriormente en otro ejercicio, el comando which obtendrá la posición del elemento a buscar.

which(notas>7)
##  [1]  1  2  3  5  7  9 12 13 14 15 16 17 18 19 20
  1. Visualiza las notas ordenadas de menor a mayor.

Para visualizar los componentes de un vector de forma ordenada (ascendente), se ocupará el comando sort.

sort(notas)
##  [1]  2  4  5  6  7  8 10 10 11 12 13 14 15 16 16 16 17 18 19 20
  1. Visualiza las notas ordenadas de mayor a menor.

Al igual que el anterior literal, se utilizará el comando sort, sin embargo, como el orden es decreciente, se agrega la función decreasing, lo cual nos mostrará el orden contrario.

sort(notas, decreasing = TRUE)
##  [1] 20 19 18 17 16 16 16 15 14 13 12 11 10 10  8  7  6  5  4  2
  1. ¿Cuál ha sido la nota máxima?
max(notas)
## [1] 20
  1. ¿En qué posición del vector está esa nota máxima?
which(notas>=20)
## [1] 7

EJERCICIO 5

A partir de los vectores alumnos y notas definidos:
  1. Visualiza las notas de los 10 primeros alumnos.
notas[1:10]
##  [1] 10 14 12  2 16  4 20  5  8  7

Para visualizar de mejor manera, se renombran las variables para que se muestren de manera conjunta.

##   Esteban   Vanessa     Kevin    Javier    Andrés   Paulina   Aracely    Israel 
##        10        14        12         2        16         4        20         5 
##   Viviana      José     María   Génesis      Luis  Cristina Jefferson      Joel 
##         8         7         6        10        15        16        18        13 
##    Camilo  Jonathan     Navil  Samantha 
##        19        17        16        11
  1. Suma las notas de los 10 primeros alumnos del vector.
sum(notas[1:10])
## [1] 98
  1. ¿Cuántos alumnos hay en total?
length(alumnos)
## [1] 20
  1. Suma las notas de los alumnos.
sum(notas)
## [1] 239
  1. ¿Cuántos alumnos han aprobado?

Para obtener el total de alumnos que aprobaron, se deben inicializar diversas variables que realizarán el respectivo conteo, además, se usará el comando condicional for, el mismo que permitirá la división entre los aprobados y reprobados.

a <- length(notas)
j <- 1
cont <- 0
cont1 <- 0

aprobados <- 1:a

for(i in 1:a){
  if(notas[i] >= 14){
    aprobados[j] <- "Aprobado" 
    cont<-cont+1
  }else{
    aprobados[j] <- "Reprobado" 
    cont1<-cont1+1
  }
  j <- j+1
}
aprobados

names(alumnos) <- aprobados
alumnos
##   Reprobado    Aprobado   Reprobado   Reprobado    Aprobado   Reprobado 
##   "Esteban"   "Vanessa"     "Kevin"    "Javier"    "Andrés"   "Paulina" 
##    Aprobado   Reprobado   Reprobado   Reprobado   Reprobado   Reprobado 
##   "Aracely"    "Israel"   "Viviana"      "José"     "María"   "Génesis" 
##    Aprobado    Aprobado    Aprobado   Reprobado    Aprobado    Aprobado 
##      "Luis"  "Cristina" "Jefferson"      "Joel"    "Camilo"  "Jonathan" 
##    Aprobado   Reprobado 
##     "Navil"  "Samantha" 
## Aprobaron en total 9 alumnos.
  1. ¿Qué porcentaje de alumnos han aprobado?
porcent <- (cont*100)/a
## Aprobó el  45 % del total de alumnos.
  1. ¿Cuáles han sido las notas máxima y mínima?
mx <-max(notas)

mn <-min(notas)
## La nota máxima es de: 20
## La nota mínima es de: 2
  1. ¿De qué alumnos son la máxima y mínima notas?
nm <- which(notas >= 20)

nmn <- which(notas <= 2)
## La mayor nota es de Aracely con una calificación de 20
## La menor nota es de Javier con una calificación de 2
  1. Nota media de alumnos, teniendo en cuenta sólo a los que han aprobado.
a <- length(notas)
cont <- 0
sum <- 0

for(i in 1:a){
  if(notas[i] >= 14){
    cont <- cont+1
    sum <- sum+notas[i]
  } 
}

media <- sum/cont
## La nota media de los alumnos que han aprobado es de: 16.77778