Ejercicio con Vectores en R


EJERCICIO 1

Calcular los valores numéricos aproximados

\[ \frac{0.3*0.15} {0.3*0.15+0.2*0.8+0.5*0.12} *\frac{5^6} {6!}e^{-5}\ y\binom{20} {7}0.4^7 0.6^{13}\]


  1. Calcular el primer valor.
num1 <- 0.3*0.15
num2 <- 0.3*0.15
num3 <- 0.2*0.8
num4 <- 0.5*0.12
total <- num1/(num2+num3+num4)
total
## [1] 0.1698113
  1. Calcular el segundo valor (Coeficiente binomial).
num5 <- (5^6)/(factorial(6))
num6 <- exp(-5)
total2 <- num5*num6
total2
## [1] 0.1462228
  1. Calcular el tercer valor.
a<-factorial(20)/(factorial(7)*factorial(20-7))
b<-0.4^7
c<-0.6^13
total3<-a*b*c
total3
## [1] 0.1658823

Este código calculará los valores numéricos aproximados de las expresiones dada.


EJERCICIO 2

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

Crear el vector alumnos con 20 nombres.

nombres <- c("JULIO","PABLO","DILAN","DAVID","PEDRO","SOFIA","JOSE","MIGUEL",
             "CARLA","DANIELA","LUIS","IBETH","PAMELA","CARLOS","EVELYN",
             "ALEJANDRO","SHIREY","NICOLETTE","MATEO","RAQUEL")
  1. Visualízalo en pantalla
nombres
##  [1] "JULIO"     "PABLO"     "DILAN"     "DAVID"     "PEDRO"     "SOFIA"    
##  [7] "JOSE"      "MIGUEL"    "CARLA"     "DANIELA"   "LUIS"      "IBETH"    
## [13] "PAMELA"    "CARLOS"    "EVELYN"    "ALEJANDRO" "SHIREY"    "NICOLETTE"
## [19] "MATEO"     "RAQUEL"
  1. ¿Cuántas componentes tiene el vector alumnos?
length(nombres)
## [1] 20
  1. ¿En qué posiciones del vector alumnos está la letra ‘A’?
buscar_letra_a <- function(vector) {
  palabras_con_a <- vector[grep("A", vector)]
  return(palabras_con_a)
}
resultado <- buscar_letra_a(nombres)
print(resultado)
##  [1] "PABLO"     "DILAN"     "DAVID"     "SOFIA"     "CARLA"     "DANIELA"  
##  [7] "PAMELA"    "CARLOS"    "ALEJANDRO" "MATEO"     "RAQUEL"

EJERCICIO 3

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

notas <- runif(20, min = 1, max = 20)
notas_red <- round(notas)
  1. Visualízalo en pantalla.
notas_red
##  [1] 12  8  6 15 13  3 15 17  2 14 11  6 15 10  2 16  9 19  9 18

Creamos un vector llamado notas el cual colocamos la función runif para que nos de el número aleatorio de las notas dondo le pedimos que el minimo sea de 1 y el máximo de 20. creamos otra nueva variable que la llamamos notas_red donde usamos la función round para redondear las notas y que no salgan con decimales.

  1. ¿Cuántas componentes tiene?
length(notas_red)
## [1] 20

Utilizaremos la función length para saber cuantos componentes tiene el vector notas_red.

  1. ¿Cuánto suman todas las notas?
sum(notas_red)
## [1] 220

Utilizamos la función sum para sumar todas las notas.

  1. ¿Cuál es la media aritmética de todas las notas?
mean(notas_red)
## [1] 11

Utilizaremos la función mean para calcular la media.

  1. ¿En qué posiciones están las notas mayores de 7?
which(notas_red>7)
##  [1]  1  2  4  5  7  8 10 11 13 14 16 17 18 19 20

Utilizaremos la función which para observar en posición se encuentran las notas mayores a 7.

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

Utilizaremos la función sort ya que ordena ascendentemente las notas.

  1. Visualiza las notas ordenadas de mayor a menor.
sort(notas_red, decreasing = TRUE)
##  [1] 19 18 17 16 15 15 15 14 13 12 11 10  9  9  8  6  6  3  2  2

Para que ordene los elementos descendentemente se utilizo la función sort y decreasing.

  1. ¿Cuál ha sido la nota máxima?
max(notas_red)
## [1] 19

Utilizaremos la función max para visualizar cual es la nota máxima.

  1. ¿En qué posición del vector está esa nota máxima?
which.max(notas)
## [1] 18

Utilizaremos la función which.max para visualizar la nota máxima y la posición en la que se ubica.


EJERCICIO 4

A partir de los vectores alumnos y notas definidos:

nombres1 <- c("JULIO","PABLO","DILAN","DAVID","PEDRO","SOFIA","JOSE","MIGUEL",
             "CARLA","DANIELA","LUIS","IBETH","PAMELA","CARLOS","EVELYN",
             "ALEJANDRO","SHIREY","NICOLETTE","MATEO","RAQUEL")

nexamen <- c(4,6,3,8,10,7,4,8,9,10,10,5,8,7,4,1,2,5,8,9)
nombres1
##  [1] "JULIO"     "PABLO"     "DILAN"     "DAVID"     "PEDRO"     "SOFIA"    
##  [7] "JOSE"      "MIGUEL"    "CARLA"     "DANIELA"   "LUIS"      "IBETH"    
## [13] "PAMELA"    "CARLOS"    "EVELYN"    "ALEJANDRO" "SHIREY"    "NICOLETTE"
## [19] "MATEO"     "RAQUEL"
nexamen
##  [1]  4  6  3  8 10  7  4  8  9 10 10  5  8  7  4  1  2  5  8  9
  1. Visualiza las notas de los 10 primeros alumnos
nexamen[1:10]
##  [1]  4  6  3  8 10  7  4  8  9 10
  1. Suma las notas de los 10 primeros alumnos del vector
sum(nexamen[1:10])
## [1] 69
  1. ¿Cuántos alumnos hay en total?
length(nombres1)
## [1] 20
  1. Suma las notas de los alumnos
sum(nexamen)
## [1] 128
  1. ¿Cuántos alumnos han aprobado?
posicion <- which(nexamen>=7)
posicion
##  [1]  4  5  6  8  9 10 11 13 14 19 20
totalp <- length(posicion)
totalp
## [1] 11
  1. ¿Qué porcentaje de alumnos han aprobado?
porcentaje<-(totalp*100)/length(nombres)
porcentaje
## [1] 55
  1. ¿Cuáles han sido las notas máxima y mínima?
max(nexamen)
## [1] 10
min(nexamen)
## [1] 1
  1. ¿De qué alumnos son la máxima y mínima notas?
m <- data.frame(nombres1, nexamen)
m
##     nombres1 nexamen
## 1      JULIO       4
## 2      PABLO       6
## 3      DILAN       3
## 4      DAVID       8
## 5      PEDRO      10
## 6      SOFIA       7
## 7       JOSE       4
## 8     MIGUEL       8
## 9      CARLA       9
## 10   DANIELA      10
## 11      LUIS      10
## 12     IBETH       5
## 13    PAMELA       8
## 14    CARLOS       7
## 15    EVELYN       4
## 16 ALEJANDRO       1
## 17    SHIREY       2
## 18 NICOLETTE       5
## 19     MATEO       8
## 20    RAQUEL       9
which(nexamen==1)
## [1] 16
m[16,]
##     nombres1 nexamen
## 16 ALEJANDRO       1
which(nexamen ==10)
## [1]  5 10 11
m[10,]
##    nombres1 nexamen
## 10  DANIELA      10
m[5,]
##   nombres1 nexamen
## 5    PEDRO      10
m[11,]
##    nombres1 nexamen
## 11     LUIS      10
which(nexamen==1)
## [1] 16
m[16,]
##     nombres1 nexamen
## 16 ALEJANDRO       1
  1. Nota media de alumnos, teniendo en cuenta sólo a los que han aprobado.
aprobados <- which(nexamen>=7)
aprobados
##  [1]  4  5  6  8  9 10 11 13 14 19 20
mean(aprobados)
## [1] 10.81818

EJERCICIO 5

Creación y Manipulación de Vectores

  1. Crea un vector llamado vec1 que contenga los números del 1 al 10.
vec1<- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
vec1
##  [1]  1  2  3  4  5  6  7  8  9 10

En el presente ejercicio se crea un vector denominado vc1 con los numeros del 1 a al 10

  1. Extrae el tercer y sexto elemento de vec1.
vec1<- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
vec1
##  [1]  1  2  3  4  5  6  7  8  9 10
s1<-vec1[c(3, 6)]
s1
## [1] 3 6

En el presente ejercicio se denota el vector denominado vec1 que contiene numeros del 1 al 10 se extrae con otro vector denominado s1 la tercera y sexta posicion las cuales son 3 y 6 los que nos da un resultado de 3 y 6.

  1. Reemplaza el quinto elemento de vec1 por el número 99.
vec1<- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
vec1
##  [1]  1  2  3  4  5  6  7  8  9 10
vec1[5]<-99
vec1
##  [1]  1  2  3  4 99  6  7  8  9 10

Se puede notar que en el vec1 tenemos todos los numeros del 1 al 10 en el siguiente se pone entre corchetes la posicion que se desea reemplazar en este caso es la posicion 5 y se reemplaza con el numero 99.


EJERCICIO 6

Operaciones Aritméticas con Vectores

  1. Crea dos vectores vec2 y vec3 de longitud 5 con valores enteros aleatorios entre 1 y 20.
vec2<- c(1, 2, 3, 4, 5)
vec2
## [1] 1 2 3 4 5
vec3<- c(10, 11, 12, 13, 14)
vec3
## [1] 10 11 12 13 14

En este ejercicio podemos evidenciar que hay dos vectores con los nombres de vec2 y vec3, en el cual el vec2 esta integrado de los valores 1, 2, 3, 4, 5 y el vec3 esta compuesto por los numeros 10, 11, 12, 13, 14.

  1. Suma los vectores vec2 y vec3.
vec4<- outer(vec2,vec3,"+")
vec4
##      [,1] [,2] [,3] [,4] [,5]
## [1,]   11   12   13   14   15
## [2,]   12   13   14   15   16
## [3,]   13   14   15   16   17
## [4,]   14   15   16   17   18
## [5,]   15   16   17   18   19

En este ejericio se procede a calcular la suma de los dos vectores del vec2 y el vec3 con la funcion outer la cual nos permite calcular la suma de ambos vectores, en el vec4 generando una matriz nueva con los resultados de dichas sumas.

  1. Multiplica los vectores vec2 y vec3.
vec5<- outer(vec2,vec3,"*")
vec5
##      [,1] [,2] [,3] [,4] [,5]
## [1,]   10   11   12   13   14
## [2,]   20   22   24   26   28
## [3,]   30   33   36   39   42
## [4,]   40   44   48   52   56
## [5,]   50   55   60   65   70

En este ejercicio se procede a calcular la multipicacion de los dos vectores del vec2 y el vec3 con la funcion outer la cual nos permite calcular la multiplicacion de ambos vectores, en el vec5 generando una matriz nueva con los resultados de dichas multiplicaciones.


EJERCICIO 7

Funciones de Resumen

  1. Crea un vector vec4 que contenga los valores 3, 5, 7, 2, 8, 10, 4, 6.
vec4 <- c(3, 5, 7, 2, 8 , 10, 4, 6)
vec4
## [1]  3  5  7  2  8 10  4  6
  1. Calcula la media, la mediana y la desviación estándar de vec4.
# Media

mean(vec4)
## [1] 5.625
# Mediana

median(vec4)
## [1] 5.5
# Desviación estándar

sd(vec4)
## [1] 2.66927

Con este código crearemos un vector llamado vec4 que tendra los siguientes valores (3, 5, 7, 2, 8, 10, 4, 6) y del cual calcularemos la media, la mediana y la desviación estándar.


EJERCICIO 8

Filtrado de Vectores.

  1. Crear el vector vec5 con los números del 1 al 20
vec5 <- 1:20 
vec5
##  [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
  1. Filtrar y crear un nuevo vector con los números mayores que 10
vec1<- vec5[vec5 > 10] 
vec1
##  [1] 11 12 13 14 15 16 17 18 19 20

Este código creará el vector vec5 con los números del 1 al 20, luego filtrará los números mayores que 10 y creará un nuevo vector llamado vec1.


EJERCICIO 9

Ordenación de Vectores

  1. Crea un vector vec6 con los siguientes números: 12, 5, 13, 9, 2, 8, 10, 1.
vec6 <- c(12, 5, 13, 9, 2, 8, 10, 1)
vec6
## [1] 12  5 13  9  2  8 10  1
  1. Ordena vec6 en orden ascendente.
h2 <- sort(vec6)
h2
## [1]  1  2  5  8  9 10 12 13
  1. Ordena vec6 en orden descendente.
h3 <- sort(vec6,decreasing = TRUE)
h3
## [1] 13 12 10  9  8  5  2  1

EJERCICIO 10

Operaciones Lógicas con Vectores

  1. Operaciones Lógicas con Vectores.
vec7 <- c(7, 14, 3, 8, 15, 1, 6, 10)
vec7
## [1]  7 14  3  8 15  1  6 10
  1. Crear un nuevo vector con TRUE si el valor en vec7 es mayor que 5, y FALSE en caso contrario.
nuevo_vec <- vec7 > 5 
nuevo_vec
## [1]  TRUE  TRUE FALSE  TRUE  TRUE FALSE  TRUE  TRUE

Este código creará el vector vec7 con los valores proporcionados.


EJERCICIO 11

Subsetting Avanzado.

  1. Crea un vector vec8 con los siguientes números: 11, 2, 19, 8, 5, 12, 3, 7.
vec8<- c (11, 2, 19, 8, 5, 12, 3, 7)
vec8
## [1] 11  2 19  8  5 12  3  7

En el presente ejercicio nos solicita crear un vector denominado vec8 con los siguientes numeros 11, 2, 19, 8, 5, 12, 3, 7.

  1. Extrae los elementos de vec8 que sean múltiplos de 3.
vec9<- vec8[vec8%%3 ==0]
vec9
## [1] 12  3

Como podemos observar en el siguiente literal se evidencia que se saca los multiplos de 3 del vector 8 en el vec9 esto se da por la siguiente operacion: se pone el vec9 y se le asigna el vec8 entre corchetes el vec8 dividido para 3 y que el residuo nos de 0 por ende nos daria los multiplos de tres en el vec9.


EJERCICIO 12

Funciones de Aplicación

  1. Crear el vector vec9.
vec9 <- c(2, 4, 6, 8, 10, 12, 14, 16)
vec9
## [1]  2  4  6  8 10 12 14 16
  1. Aplicar la función sqrt a cada elemento de vec9.
res <- sqrt(vec9) 
res
## [1] 1.414214 2.000000 2.449490 2.828427 3.162278 3.464102 3.741657 4.000000

Este código creará el vector vec9 con los valores proporcionados. Luego se aplicará la función sqrt() (raíz cuadrada) a cada elemento de vec9.


EJERCICIO 13

Concatenación de Vectores

  1. Crea dos vectores vec10 y vec11 de longitud 4 con valores enteros.
vec10 <- c(2, 4, 6, 8)
vec11 <- c(14, 16, 18, 20)
  1. Concatena vec10 y vec11 para formar un nuevo vector vec12.
vec12 <- c(vec10, vec11)
vec12
## [1]  2  4  6  8 14 16 18 20

Con este código vamos a crear dos vectores que serán vec10 y vec11 con longitud 4 de valores enteros y concatenaremos los vectores en un nuevo vector que será el vec12 y se visualiza a los dos vectores unidos.


EJERCICIO 14

Operaciones Aritméticas con Vectores

  1. Crea un vector vec13 que contenga los números del 1 al 10.
vec13<- c (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
vec13
##  [1]  1  2  3  4  5  6  7  8  9 10

En el presente ejercicio nos solicita crear un vector denominado vec13 con los siguientes numeros 1, 2, 3, 4, 5, 6, 7, 8, 9, 10.

  1. Elimina el cuarto y séptimo elemento de vec13.
vec13<- c (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
vec13
##  [1]  1  2  3  4  5  6  7  8  9 10
vec14<-vec13[-c(4,7)]
vec14
## [1]  1  2  3  5  6  8  9 10

Podemos evidenciar que nos solicita eliminar el 4 y 7 elemeto del vector 13 que se denota como vec13 para esto denotamos otro vector el cual se llamara vec14 en este se la asigan el vec13 y entre corchetes y con el signo menos se escribe los elementos que se quieren eliminar en nuestro caso son los numeros 4 y 7 los cual nos da como resultado 1 2 3 5 6 7 8 10.