Ejercicios

#Ian Fernando Castillo Cortés A01198941 
#Perla Sofia Reyes Bretado A00839262

#Problema 1
x = c(10, 7, 18, -11, 6, -34, 29)
print(x)
## [1]  10   7  18 -11   6 -34  29
#Problema 2
#Cauclula media del vector x
media = mean(x)
#Cauclula desviación estandar del vector x
desviacion_estandar = sd(x)
#Cauclula varianza del vector x
varianza = var(x)
#Se guardan los tres valores anteriores en el vector estadx
estadx =c(media, desviacion_estandar, varianza)
#Resultados
print(estadx)
## [1]   3.571429  20.565806 422.952381
#Problema 3
#Se crea una matriz de 1x70, con numeros del 10 al 80.
numeros_10_80 = matrix(10:80,nrow = 1)
#Se crea una matriz de 1x75 con numeros del 25 al 100 y se saca la media de estos. 
media_25_100 = mean(matrix(25:100, nrow = 1))
#Se crea una matriz de 1x45 con numeros del 50 al 95 y se saca la suma de estos. 
suma_50_95 = sum(matrix(50:95, nrow = 1))

#Resultados
print(numeros_10_80)
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14]
## [1,]   10   11   12   13   14   15   16   17   18    19    20    21    22    23
##      [,15] [,16] [,17] [,18] [,19] [,20] [,21] [,22] [,23] [,24] [,25] [,26]
## [1,]    24    25    26    27    28    29    30    31    32    33    34    35
##      [,27] [,28] [,29] [,30] [,31] [,32] [,33] [,34] [,35] [,36] [,37] [,38]
## [1,]    36    37    38    39    40    41    42    43    44    45    46    47
##      [,39] [,40] [,41] [,42] [,43] [,44] [,45] [,46] [,47] [,48] [,49] [,50]
## [1,]    48    49    50    51    52    53    54    55    56    57    58    59
##      [,51] [,52] [,53] [,54] [,55] [,56] [,57] [,58] [,59] [,60] [,61] [,62]
## [1,]    60    61    62    63    64    65    66    67    68    69    70    71
##      [,63] [,64] [,65] [,66] [,67] [,68] [,69] [,70] [,71]
## [1,]    72    73    74    75    76    77    78    79    80
print(media_25_100)
## [1] 62.5
print(suma_50_95)
## [1] 3335
#Problena 4
#Se crea un vector de 10 numeros con valores aleatorios entre -150 y 500
vector_random_150_500 = c(sample(-150:500,10))

#Resultado
print(vector_random_150_500)
##  [1]  99 254 -58 107 189 154 118 367 395 387
#Problema 5
#Se crea un vector con 10 numeros de valor 0. 
fb <- numeric(10)
#Se definen los primeros dos valores de la serie de fibonacci.
fb[1] <- fb[2] <- 1
#Se crea un loop de 8 iteraciones para calcular los 8 numeros restantes.
for(i in 1:8){
  #Se lleva a cabo los calculos de la serie de fibonnaci 
  fb[i + 2] = fb[i] + fb[i+1]
}

#Resultados
print(fb)
##  [1]  1  1  2  3  5  8 13 21 34 55
#Problema 6
#Se crea una función que obtiene el maximo y minimo de una lista.
max_min = function(lista){
  #Desde un principio, se utiliza el primer valor de la lista como el maximo y minimo, con el afán de inicializar las variables. 
  min = lista[1]
  max = lista[1]
  
  #Se hace un for loop que itera segun el tamaño de la lista. 
  for(i in 1:length(lista)){
    #Si el valor actual del i-esimo numero en la lista es menor al minimo actual, se define este i-esimo numero como el "nuevo minimo".
    if(lista[i] < min){
      min = lista[i]
    }
    #De forma analoga al minimo, pero si el i-esimo es mayor al maximo actual, este se vuelve el "nuevo maximo".
    if(lista[i] > max){
      max = lista[i]
    }
  }
  #Tras todas las iteraciones, se crea un vector que incluye el minimo y maximo de la lista.
  respuestas = c(min, max)
  #La función regresa el vectro que incluye el minimo y maximo. 
  return(respuestas)
}

#Respuestas
lista_1 = c(-1, 20, -3, 40, -5, 60)
lista_2 = c(10, 20, 30, -40, -50, -60)
respuestas_lista_1 = max_min(lista_1)
respuestas_lista_2 = max_min(lista_2)

#Minimo lista 1
print(respuestas_lista_1[1])
## [1] -5
#Maximo lista 1
print(respuestas_lista_1[2])
## [1] 60
#Minimo lista 2
print(respuestas_lista_2[1])
## [1] -60
#Maximo lista 2
print(respuestas_lista_2[2])
## [1] 30
#EJERCICIO 7
#función
multiplica <- function(vect1, vect2) {
  #condición
  #si el vector es igual se realiza la operación
  if(length(vect1) == length(vect2)) {
    return(vect1 * vect2)
  } else {
    #si el vector no tiene la misma longitud, no se realiza
    stop("Entrada incorrecta, la longitud del vector debe ser la misma")
  }
}
# Ejemplo
resultado <- multiplica(c(30, 10), c(3, 4))
print(resultado)
## [1] 90 40
#EJERCICIO 8
#función
cuenta <- function(vect, num) {
  
  valor_esp <- sum(vect == num)
  return(valor_esp)
}
ans <- cuenta(c(10, 2, 10, 7, 2, 7, 2), 2)
print(ans)
## [1] 3
#EJERCICIO 9
#función
vect <- 1:100
enesimo <- function(vect, num) {
  i <- seq(from = 1, to = length(vect), by = num)
  dato <- vect[i]
  return(dato)
}
resultado <- enesimo(vect, 5)
print(resultado)
##  [1]  1  6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96