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
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
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
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
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
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
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)
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 ...
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
head(planets_df[ , 3], 5)
## [1] 0.382 0.949 1.000 0.532 11.209
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
planets_df[ ,1][planets_df[ ,5]==TRUE]
## [1] "Jupiter" "Saturn" "Uranus" "Neptune"
subset(planets_df, planets_df[ ,3] < 1, 1)
## name
## 1 Mercury
## 2 Venus
## 4 Mars
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"
Siendo un gran aficionado al cine, decides empezar a almacenar información sobre buenas películas, con la ayuda de listas.
moviename: una cadena de caracteres con el título de la película (almacenada en mov)
actors: un vector con los nombres de los actores principales (almacenado en act). Solo 5 actores
reviews: un marco de datos que contiene algunas críticas (almacenado en rev). Solo 3 columnas (scores, sources, comments) y 3 filas.
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
print(sp_man_no_way_home_list[["actors"]])
## [1] "Andrew Garfield" "Zendaya" "Tom Holland" "Tobey Maguire"
## [5] "Jacob Batalon"
print(sp_man_no_way_home_list[["actors"]][2])
## [1] "Zendaya"
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
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