Tarea 1

Analizarás las cifras de taquilla de la franquicia de Star Wars. En el editor se definen tres vectores de las 3 primeras peliculas de Star Wars, las componentes indica el ingreso de las taquillas de EEUU y por fuera de EEUU.

new_hope <- c(460.998,314.4)

empire_strikes <- c(290.475,247.900)

return_jedi <- c(309.306,165.8)

Responda

  1. Construye una matriz llamada star_wars_matrix de \(2 \times 3\) que combine los 3 vectores.
star_wars_matrix <- matrix(c(new_hope, empire_strikes, return_jedi), nrow = 2, byrow = FALSE)

star_wars_matrix
##         [,1]    [,2]    [,3]
## [1,] 460.998 290.475 309.306
## [2,] 314.400 247.900 165.800
  1. Renombra las filas (”US”,”non-US”) y columas(”A New Hope”, ”The empire Strikes Back”,”Return of the Jedi”). Use rownames y colnames.
rownames(star_wars_matrix) <- c("US","non-US")

colnames(star_wars_matrix) <- c("A New Hope", "The Empire Strikes Back", "Return of the Jedi")

star_wars_matrix
##        A New Hope The Empire Strikes Back Return of the Jedi
## US        460.998                 290.475            309.306
## non-US    314.400                 247.900            165.800
  1. Calcule las cifras de la taquilla mundial de las tres películas y póngalas en el vector llamado worldwide_vector
worldwide_vector <- c(sum(star_wars_matrix[ ,1]), sum(star_wars_matrix[ ,2]), sum(star_wars_matrix[ ,3]))

worldwide_vector
## [1] 775.398 538.375 475.106
  1. Añade worldwide_vector como una nueva fila a la matriz star_wars_matrix y al resultado le asignas el nombre all_wars_matrix.
all_wars_matrix <- matrix(c(star_wars_matrix, worldwide_vector), nrow = 3, byrow = TRUE)

rownames(all_wars_matrix) <- c("US","non-US", "Taquilla mundial")

colnames(all_wars_matrix) <- c("A New Hope", "The Empire Strikes Back", "Return of the Jedi")

all_wars_matrix
##                  A New Hope The Empire Strikes Back Return of the Jedi
## US                  460.998                 314.400            290.475
## non-US              247.900                 309.306            165.800
## Taquilla mundial    775.398                 538.375            475.106
  1. Selecciona los ingresos no estadosunidenses de las peliculas y almacenalas como non_us_all. Además, calcule el promedio.
non_us_all <- all_wars_matrix[2, ]

non_us_all
##              A New Hope The Empire Strikes Back      Return of the Jedi 
##                 247.900                 309.306                 165.800
mean_non_us <- mean(non_us_all)

mean_non_us
## [1] 241.002

Tarea 2

Sistema solar:

name <- c('Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus',
'Neptune')

type <- c('Terrestrial planet', 'Terrestrial planet', 'Terrestrial planet', 
'Terrestrial planet', 'Gas giant', 'Gas giant', 'Gas giant', 'Gas giant')

diameter <- c(0.382, 0.949, 1, 0.532, 11.209, 9.449, 4.007, 3.883)

rotation <- c(58.64, -243.02, 1, 1.03, 0.41, 0.43, -0.72, 0.67)

rings <- c(FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE)
  1. Crea el marco de datos (data.frame), asignelo a planets_df y usa str() para ver la estructura.
planets_df <- data.frame(name, type, diameter, rotation, rings)

planets_df
##      name               type diameter rotation rings
## 1 Mercury Terrestrial planet    0.382    58.64 FALSE
## 2   Venus Terrestrial planet    0.949  -243.02 FALSE
## 3   Earth Terrestrial planet    1.000     1.00 FALSE
## 4    Mars Terrestrial planet    0.532     1.03 FALSE
## 5 Jupiter          Gas giant   11.209     0.41  TRUE
## 6  Saturn          Gas giant    9.449     0.43  TRUE
## 7  Uranus          Gas giant    4.007    -0.72  TRUE
## 8 Neptune          Gas giant    3.883     0.67  TRUE
str(planets_df)
## 'data.frame':    8 obs. of  5 variables:
##  $ name    : chr  "Mercury" "Venus" "Earth" "Mars" ...
##  $ type    : chr  "Terrestrial planet" "Terrestrial planet" "Terrestrial planet" "Terrestrial planet" ...
##  $ diameter: num  0.382 0.949 1 0.532 11.209 ...
##  $ rotation: num  58.64 -243.02 1 1.03 0.41 ...
##  $ rings   : logi  FALSE FALSE FALSE FALSE TRUE TRUE ...
  1. Selecciona el diámetro del planeta Mercurio y todos los datos del planeta Marte.
c(planets_df[1,3], planets_df[4, 1:5])
## [[1]]
## [1] 0.382
## 
## $name
## [1] "Mars"
## 
## $type
## [1] "Terrestrial planet"
## 
## $diameter
## [1] 0.532
## 
## $rotation
## [1] 1.03
## 
## $rings
## [1] FALSE
  1. Seleccione e imprima los 5 primeros valores del ”diámetro” de planets_df.
head(planets_df[ , 3], 5)
## [1]  0.382  0.949  1.000  0.532 11.209
  1. Escriba 3 formas de seleccionar la variable rings de planets_df y asígnelo a rings_vector.
rings_vector1 <- planets_df[ , 5]

rings_vector1
## [1] FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE
rings_vector2 <- planets_df$rings 

rings_vector2
## [1] FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE
rings_vector3 <- planets_df["rings"]

rings_vector3
##   rings
## 1 FALSE
## 2 FALSE
## 3 FALSE
## 4 FALSE
## 5  TRUE
## 6  TRUE
## 7  TRUE
## 8  TRUE
  1. Selecciona todos los planetas que tienen anillos. Use rings_vector.
planets_df[ ,1][planets_df[ ,5]==TRUE]
## [1] "Jupiter" "Saturn"  "Uranus"  "Neptune"
  1. Utilice subset() en planets_df para seleccionar los planetas que tienen un diámetro menor que la Tierra. Como la variable diámetro es una medida relativa del diámetro del planeta con respecto al de la Tierra, su condición es diámetro < 1.
subset(planets_df, planets_df[ ,3] < 1, 1)
##      name
## 1 Mercury
## 2   Venus
## 4    Mars
  1. Ordena de menor a mayor todos los planetas por el diámetro.
order(planets_df[ ,3])
## [1] 1 4 2 3 8 7 6 5
planets_df[ ,1][order(planets_df[ ,3])]
## [1] "Mercury" "Mars"    "Venus"   "Earth"   "Neptune" "Uranus"  "Saturn" 
## [8] "Jupiter"

Tarea 3

Siendo un gran aficionado al cine, decides empezar a almacenar información sobre buenas películas, con la ayuda de listas.

  1. Crea el código en el editor y asígnala a sp_man_no_way_home_list; contiene tres elementos:
mov <- c("Spider man No way home")

act <- c("Andrew Garfield","Zendaya","Tom Holland","Tobey Maguire","Jacob Batalon")

#componentes del data frame

scores <- c(4, 5, 4)

sources <- c("filmaffinity", "filmaffinity", "sensacine")

comments <- c("emotivo cierre de la trilogía", "un festival de guiños al fandom y al acecho de la madurez",
              " el guión sorprende mientras alegra la vista a los más nostálgicos de la franquicia")
#data frame 

rev <- data.frame(scores, sources, comments)

#lista

sp_man_no_way_home_list <- list("moviename" = mov, "actors" = act, "reviews" = rev)

sp_man_no_way_home_list
## $moviename
## [1] "Spider man No way home"
## 
## $actors
## [1] "Andrew Garfield" "Zendaya"         "Tom Holland"     "Tobey Maguire"  
## [5] "Jacob Batalon"  
## 
## $reviews
##   scores      sources
## 1      4 filmaffinity
## 2      5 filmaffinity
## 3      4    sensacine
##                                                                              comments
## 1                                                       emotivo cierre de la trilogía
## 2                           un festival de guiños al fandom y al acecho de la madurez
## 3  el guión sorprende mientras alegra la vista a los más nostálgicos de la franquicia
  1. Seleccione de sp_man_no_way_home_list el vector que representa a los actores. Simplemente imprime este vector.
print(sp_man_no_way_home_list[["actors"]])
## [1] "Andrew Garfield" "Zendaya"         "Tom Holland"     "Tobey Maguire"  
## [5] "Jacob Batalon"
  1. Selecciona de sp_man_no_way_home_list el segundo elemento del vector que representa a los actores. Haz una impresión como la anterior.
print(sp_man_no_way_home_list[["actors"]][2])
## [1] "Zendaya"

Tarea 4

El lanzamiento de una moneda. Realice 1000 simulaciones del lanzamiento de una moneda equilibrada y compruebe experimentalmente que el número de veces que aparece una cara entre el total de lanzamientos se aproxima a 1/2 conforme el número de lanzamientos crece.

num_lanza <- NULL
num_caras <- NULL
prob <- NULL
resultados <- c("cara", "sello")
cara = 0
lanza = 0

for (i in 1:1000){
  rest = sample(resultados, size = 1)
  num_lanza[i] <- lanza + 1
  if(rest == "cara"){
    cara = cara + 1
    num_caras[i] <- cara 
    prob[i] <- num_caras[i] / num_lanza[i]
   } else{
     num_caras[i] <- cara
     prob[i] <- num_caras[i] / num_lanza[i]
   }
  lanza <- lanza + 1
}

exp <- data.frame(num_lanza, num_caras, prob)

Gráfico de probabilidad frecuentista:

library(ggplot2)
grafico <- ggplot(exp, aes(x = num_lanza, y = prob))+
           geom_point()+
           geom_hline(yintercept = 0.5, color = "red")+
           theme_bw()

grafico

Tarea 5

El lanzamiento de un dado. Realice 1000 simulaciones del lanzamiento de un dado equilibrado y compruebe experimentalmente que el número de veces que aparece una de las caras entre el total de lanzamientos se aproxima a 1/6 conforme el número de lanzamientos crece.

num_lanzad <- NULL
veces_dos <- NULL
probd <- NULL
resultadosd <- seq(1, 6, by = 1)
dos = 0
lanzad = 0

for (i in 1:1000){
  restd = sample(resultadosd, size = 1)
  num_lanzad[i] <- lanzad + 1
  if(restd == 2){
    dos = dos + 1
    veces_dos[i] <- dos 
    probd[i] <- veces_dos[i] / num_lanzad[i]
   } else{
     veces_dos[i] <- dos
     probd[i] <- veces_dos[i] / num_lanzad[i]
   }
  lanzad <- lanzad + 1
}

expd <- data.frame(num_lanzad, veces_dos, probd)

Gráfico de probabilidad frecuentista:

library(ggplot2)

graficod <- ggplot(expd, aes(x = num_lanzad, y = probd))+
            geom_point()+
            geom_hline(yintercept = 1/6, color = "blue")+
            theme_bw()
graficod