a

x = c(1, 3, 5, 7, 9)

b

y = c(2, 4, 6, 7, 11, 12)

c

x + 1
## [1]  2  4  6  8 10

d

y * 2
## [1]  4  8 12 14 22 24

e

length(x)
## [1] 5
length(y)
## [1] 6

f

x + y
## Warning in x + y: longitud de objeto mayor no es múltiplo de la longitud de uno
## menor
## [1]  3  7 11 14 20 13

g

sum(x > 5)
## [1] 2
sum(x[x > 5])
## [1] 16

h

sum(x > 5 | x < 3)
## [1] 3

i

y[2]
## [1] 4

j

y[-2]
## [1]  2  6  7 11 12

k

y[x]
## [1]  2  6 11 NA NA

l

NA
## [1] NA

m

y[y >= 8]
## [1] 11 12

2.2

millas <- c(65241, 65665, 65998, 66014, 66547, 66857, 67025, 67447, 66958, 67002)


kms <- millas * 1.609


diferencias <- diff(millas)


media <- mean(millas)
mediana <- median(millas)
desviacion <- sd(millas)
resumen <- summary(millas)

# Mostrar los resultados
print("Datos de millas:")
## [1] "Datos de millas:"
print(millas)
##  [1] 65241 65665 65998 66014 66547 66857 67025 67447 66958 67002
print("Datos transformados a kilómetros:")
## [1] "Datos transformados a kilómetros:"
print(kms)
##  [1] 104972.8 105655.0 106190.8 106216.5 107074.1 107572.9 107843.2 108522.2
##  [9] 107735.4 107806.2
print("Diferencias entre elementos consecutivos de millas:")
## [1] "Diferencias entre elementos consecutivos de millas:"
print(diferencias)
## [1]  424  333   16  533  310  168  422 -489   44
print("Resumen estadístico de millas:")
## [1] "Resumen estadístico de millas:"
print(resumen)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   65241   66002   66702   66475   66991   67447
print(paste("Media de millas:", media))
## [1] "Media de millas: 66475.4"
print(paste("Mediana de millas:", mediana))
## [1] "Mediana de millas: 66702"
print(paste("Desviación estándar de millas:", desviacion))
## [1] "Desviación estándar de millas: 709.327882184568"

2.3

cantidades <- c(47, 32, 40, 36, 49, 31, 49, 30, 49, 35, 48, 32)
costo_total <- sum(cantidades)


promedio_mensual <- mean(cantidades)


minimo_pagado <- min(cantidades)
maximo_pagado <- max(cantidades)


meses <- c("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio",
           "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre")
meses_pago <- meses[order(cantidades)]


meses_mas_40 <- sum(cantidades > 40)


gasto_mas_40 <- sum(cantidades[cantidades > 40])
porcentaje_gasto_mas_40 <- (gasto_mas_40 / costo_total) * 100


print(paste("Costo total de la factura del último año:", costo_total, "euros"))
## [1] "Costo total de la factura del último año: 478 euros"
print(paste("Promedio mensual de pago:", promedio_mensual, "euros"))
## [1] "Promedio mensual de pago: 39.8333333333333 euros"
print(paste("Cantidades mínimas y máximas pagadas:", minimo_pagado, "euros -", maximo_pagado, "euros"))
## [1] "Cantidades mínimas y máximas pagadas: 30 euros - 49 euros"
print("Meses en los que se realizó cada pago:")
## [1] "Meses en los que se realizó cada pago:"
print(meses_pago)
##  [1] "Agosto"     "Junio"      "Febrero"    "Diciembre"  "Octubre"   
##  [6] "Abril"      "Marzo"      "Enero"      "Noviembre"  "Mayo"      
## [11] "Julio"      "Septiembre"
print(paste("Número de meses con pagos superiores a 40 euros:", meses_mas_40))
## [1] "Número de meses con pagos superiores a 40 euros: 5"
print(paste("Porcentaje del gasto total representado por pagos superiores a 40 euros:", round(porcentaje_gasto_mas_40, 2), "%"))
## [1] "Porcentaje del gasto total representado por pagos superiores a 40 euros: 50.63 %"

2.4

datos <- c(61, 88, 73, 49, 41, 72, 99, 7, 12, 13, 87, 91, 5, 17, 97)


porcentajes <- (datos / sum(datos)) * 100
barplot(porcentajes, 
        main = "Diagrama de Porcentual", 
        xlab = "Datos", 
        ylab = "Porcentaje",
        col = "skyblue",
        ylim = c(0, 100))

resumen_summary <- summary(datos)
resumen_fivenum <- fivenum(datos)

cat("Resumen numérico con summary():\n")
## Resumen numérico con summary():
print(resumen_summary)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    5.00   15.00   61.00   54.13   87.50   99.00
cat("\nResumen numérico con fivenum():\n")
## 
## Resumen numérico con fivenum():
print(resumen_fivenum)
## [1]  5.0 15.0 61.0 87.5 99.0
cat("\nDiferencias entre summary() y fivenum():\n")
## 
## Diferencias entre summary() y fivenum():
cat("summary() proporciona un resumen más detallado con la media y otros estadísticos, mientras que fivenum() se enfoca en los cinco números resumen básicos.")
## summary() proporciona un resumen más detallado con la media y otros estadísticos, mientras que fivenum() se enfoca en los cinco números resumen básicos.

2.5

datos_normal <- rnorm(100)


hist(datos_normal, main = "Histograma de Distribución Normal", xlab = "Valores")

datos_normal_repetidos <- rnorm(100)
hist(datos_normal_repetidos, main = "Histograma de Distribución Normal (Repetido)", xlab = "Valores")

resumen_normal <- summary(datos_normal)
print(resumen_normal)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## -2.2329 -0.4259  0.1507  0.2078  0.7987  2.2208

2.6

datos_binomial <- rbinom(30, size = 5, prob = 0.9)


barplot(table(datos_binomial), main = "Diagrama de Barras - Distribución Binomial", xlab = "Valores", ylab = "Frecuencia")

resumen_binomial <- summary(datos_binomial)
print(resumen_binomial)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   3.000   4.250   5.000   4.633   5.000   5.000
resumen_normal <- summary(datos_normal)
print("Resumen de Distribución Normal:")
## [1] "Resumen de Distribución Normal:"
print(resumen_normal)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## -2.2329 -0.4259  0.1507  0.2078  0.7987  2.2208

2.7

fallos <- c(0, 1, 0, NA, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 3, 0, 0, 0, 0, 0, 2, 0, 1)


boxplot(fallos, main = "Diagrama Boxplot de Fallos en Intentos de Puesta en Órbita", 
        ylab = "Número de Fallos")

tabla_fallos <- table(fallos, useNA = "always")
print("Tabla de Frecuencia de Fallos:")
## [1] "Tabla de Frecuencia de Fallos:"
print(tabla_fallos)
## fallos
##    0    1    2    3 <NA> 
##   15    5    1    1    1
fallos_sin_na <- fallos[!is.na(fallos)]
numero_medio_errores <- mean(fallos_sin_na)
print(paste("Número Medio de Errores (sin contar NA):", numero_medio_errores))
## [1] "Número Medio de Errores (sin contar NA): 0.454545454545455"

2.8

estudiantes <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
P1 <- c(3, 3, 3, 4, 3, 4, 3, 4, 4, 3)
P2 <- c(5, 5, 2, 2, 5, 2, 2, 5, 5, 2)
P3 <- c(1, 3, 1, 3, 3, 3, 1, 3, 1, 1)


datos_encuesta <- data.frame(Estudiante = estudiantes, P1 = P1, P2 = P2, P3 = P3)


tabla_P1 <- table(datos_encuesta$P1)
tabla_P2 <- table(datos_encuesta$P2)
tabla_P3 <- table(datos_encuesta$P3)


print("Tabla de resultados para P1:")
## [1] "Tabla de resultados para P1:"
print(tabla_P1)
## 
## 3 4 
## 6 4
print("Tabla de resultados para P2:")
## [1] "Tabla de resultados para P2:"
print(tabla_P2)
## 
## 2 5 
## 5 5
print("Tabla de resultados para P3:")
## [1] "Tabla de resultados para P3:"
print(tabla_P3)
## 
## 1 3 
## 5 5
tabla_P1_P2 <- table(datos_encuesta$P1, datos_encuesta$P2)
tabla_P1_P3 <- table(datos_encuesta$P1, datos_encuesta$P3)
tabla_P2_P3 <- table(datos_encuesta$P2, datos_encuesta$P3)
tabla_P1_P2_P3 <- table(datos_encuesta$P1, datos_encuesta$P2, datos_encuesta$P3)


print("Tabla de contingencia cruzada para P1 y P2:")
## [1] "Tabla de contingencia cruzada para P1 y P2:"
print(tabla_P1_P2)
##    
##     2 5
##   3 3 3
##   4 2 2
print("Tabla de contingencia cruzada para P1 y P3:")
## [1] "Tabla de contingencia cruzada para P1 y P3:"
print(tabla_P1_P3)
##    
##     1 3
##   3 4 2
##   4 1 3
print("Tabla de contingencia cruzada para P2 y P3:")
## [1] "Tabla de contingencia cruzada para P2 y P3:"
print(tabla_P2_P3)
##    
##     1 3
##   2 3 2
##   5 2 3
print("Tabla de contingencia cruzada para P1, P2 y P3:")
## [1] "Tabla de contingencia cruzada para P1, P2 y P3:"
print(tabla_P1_P2_P3)
## , ,  = 1
## 
##    
##     2 5
##   3 3 1
##   4 0 1
## 
## , ,  = 3
## 
##    
##     2 5
##   3 0 2
##   4 2 1
datos_grafico <- data.frame(P2 = datos_encuesta$P2, P3 = datos_encuesta$P3)


barplot(as.matrix(datos_grafico), beside = TRUE, col = c("blue", "red"), main = "Diagrama de Barras Apiladas de P2 y P3", 
        xlab = "Estudiante", ylab = "Respuestas", legend.text = c("P2", "P3"))

datos_grafico_tres <- data.frame(P1 = datos_encuesta$P1, P2 = datos_encuesta$P2, P3 = datos_encuesta$P3)


barplot(as.matrix(datos_grafico_tres), beside = TRUE, col = c("blue", "green", "red"), main = "Diagrama de Barras de las Tres Preguntas", 
        xlab = "Estudiante", ylab = "Respuestas", legend.text = c("P1", "P2", "P3"))

Datos ingresados mediante c()

estudiantes <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) P1 <- c(3, 3, 3, 4, 3, 4, 3, 4, 4, 3) P2 <- c(5, 5, 2, 2, 5, 2, 2, 5, 5, 2) P3 <- c(1, 3, 1, 3, 3, 3, 1, 3, 1, 1)

Ingreso de datos mediante scan()

cat(“Ingrese los datos de P1 separados por espacios y luego presione Enter:”) P1 <- scan()

cat(“Ingrese los datos de P2 separados por espacios y luego presione Enter:”) P2 <- scan()

cat(“Ingrese los datos de P3 separados por espacios y luego presione Enter:”) P3 <- scan()

Ingreso de datos mediante read.table() desde un archivo CSV

datos_encuesta <- read.table(“datos_encuesta.csv”, header = TRUE, sep = “,”)

Ingreso de datos mediante data.entry()

datos_encuesta <- data.frame(Estudiante = estudiantes, P1 = P1, P2 = P2, P3 = P3) data.entry(datos_encuesta)

2.9

set.seed(42)  
vector1 <- rnorm(50)
vector2 <- rnorm(50)


prueba_shapiro_wilk <- function(vector) {
  resultado <- shapiro.test(vector)
  print(paste("Vector:", vector))
  print(paste("Estadístico de prueba:", resultado$statistic))
  print(paste("Valor p:", resultado$p.value))
  if (resultado$p.value > 0.05) {
    print("No se rechaza la hipótesis nula de normalidad.")
  } else {
    print("Se rechaza la hipótesis nula de normalidad.")
  }
}


prueba_shapiro_wilk(vector1)
##  [1] "Vector: 1.37095844714667"    "Vector: -0.564698171396089" 
##  [3] "Vector: 0.363128411337339"   "Vector: 0.63286260496104"   
##  [5] "Vector: 0.404268323140999"   "Vector: -0.106124516091484" 
##  [7] "Vector: 1.51152199743894"    "Vector: -0.0946590384130976"
##  [9] "Vector: 2.01842371387704"    "Vector: -0.062714099052421" 
## [11] "Vector: 1.30486965422349"    "Vector: 2.28664539270111"   
## [13] "Vector: -1.38886070111234"   "Vector: -0.278788766817371" 
## [15] "Vector: -0.133321336393658"  "Vector: 0.635950398070074"  
## [17] "Vector: -0.284252921416072"  "Vector: -2.65645542090478"  
## [19] "Vector: -2.44046692857552"   "Vector: 1.32011334573019"   
## [21] "Vector: -0.306638594078475"  "Vector: -1.78130843398"     
## [23] "Vector: -0.171917355759621"  "Vector: 1.2146746991726"    
## [25] "Vector: 1.89519346126497"    "Vector: -0.4304691316062"   
## [27] "Vector: -0.25726938276893"   "Vector: -1.76316308519478"  
## [29] "Vector: 0.460097354831271"   "Vector: -0.639994875960119" 
## [31] "Vector: 0.455450123241219"   "Vector: 0.704837337228819"  
## [33] "Vector: 1.03510352196992"    "Vector: -0.608926375407211" 
## [35] "Vector: 0.50495512329797"    "Vector: -1.71700867907334"  
## [37] "Vector: -0.784459008379496"  "Vector: -0.850907594176518" 
## [39] "Vector: -2.41420764994663"   "Vector: 0.0361226068922556" 
## [41] "Vector: 0.205998600200254"   "Vector: -0.361057298548666" 
## [43] "Vector: 0.758163235699517"   "Vector: -0.726704827076575" 
## [45] "Vector: -1.36828104441929"   "Vector: 0.432818025888717"  
## [47] "Vector: -0.811393176186672"  "Vector: 1.44410126172125"   
## [49] "Vector: -0.431446202613345"  "Vector: 0.655647883402207"  
## [1] "Estadístico de prueba: 0.98021467853283"
## [1] "Valor p: 0.561053163014445"
## [1] "No se rechaza la hipótesis nula de normalidad."
prueba_shapiro_wilk(vector2)
##  [1] "Vector: 0.321925265203947"   "Vector: -0.783838940880375" 
##  [3] "Vector: 1.57572751979198"    "Vector: 0.642899305717316"  
##  [5] "Vector: 0.0897606465996057"  "Vector: 0.276550747291463"  
##  [7] "Vector: 0.679288816055271"   "Vector: 0.0898328865790817" 
##  [9] "Vector: -2.99309008315293"   "Vector: 0.284882953530659"  
## [11] "Vector: -0.367234642740975"  "Vector: 0.185230564865609"  
## [13] "Vector: 0.581823727365507"   "Vector: 1.39973682729268"   
## [15] "Vector: -0.727292059474465"  "Vector: 1.30254263204414"   
## [17] "Vector: 0.335848119752074"   "Vector: 1.03850609869762"   
## [19] "Vector: 0.920728568290646"   "Vector: 0.720878162866862"  
## [21] "Vector: -1.04311893856785"   "Vector: -0.0901863866107067"
## [23] "Vector: 0.623518161999544"   "Vector: -0.953523357772344" 
## [25] "Vector: -0.542828814573857"  "Vector: 0.580996497681682"  
## [27] "Vector: 0.768178737834591"   "Vector: 0.463767588540167"  
## [29] "Vector: -0.885776297409679"  "Vector: -1.09978089864786"  
## [31] "Vector: 1.51270700980493"    "Vector: 0.257921437532031"  
## [33] "Vector: 0.0884402291595864"  "Vector: -0.120896537539089" 
## [35] "Vector: -1.19432889516053"   "Vector: 0.611996898040387"  
## [37] "Vector: -0.217139845746521"  "Vector: -0.182756706331922" 
## [39] "Vector: 0.93334632857116"    "Vector: 0.821773110508249"  
## [41] "Vector: 1.39211637593427"    "Vector: -0.476173923054674" 
## [43] "Vector: 0.650348560726305"   "Vector: 1.39111045639"      
## [45] "Vector: -1.1107888794479"    "Vector: -0.860792586877842" 
## [47] "Vector: -1.13173868085377"   "Vector: -1.4592139995024"   
## [49] "Vector: 0.0799825532411612"  "Vector: 0.65320433964919"   
## [1] "Estadístico de prueba: 0.949365131387066"
## [1] "Valor p: 0.0321284078790245"
## [1] "Se rechaza la hipótesis nula de normalidad."
resultado_t_test <- t.test(vector1, vector2)
print("Resultado del Test t de Student:")
## [1] "Resultado del Test t de Student:"
print(resultado_t_test)
## 
##  Welch Two Sample t-test
## 
## data:  vector1 and vector2
## t = -0.65289, df = 93.647, p-value = 0.5154
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -0.5511248  0.2783784
## sample estimates:
##   mean of x   mean of y 
## -0.03567178  0.10070141

2.10

set.seed(42)  
vector_normal <- rnorm(50)

vector_binomial <- rbinom(50, size = 10, prob = 0.5)  # Tamaño 10, probabilidad 0.5


prueba_shapiro_wilk <- function(vector, nombre_vector) {
  resultado <- shapiro.test(vector)
  print(paste("Vector:", nombre_vector))
  print(paste("Estadístico de prueba:", resultado$statistic))
  print(paste("Valor p:", resultado$p.value))
  if (resultado$p.value > 0.05) {
    print("No se rechaza la hipótesis nula de normalidad.")
  } else {
    print("Se rechaza la hipótesis nula de normalidad.")
  }
}


prueba_shapiro_wilk(vector_normal, "Vector Normal")
## [1] "Vector: Vector Normal"
## [1] "Estadístico de prueba: 0.98021467853283"
## [1] "Valor p: 0.561053163014445"
## [1] "No se rechaza la hipótesis nula de normalidad."
prueba_shapiro_wilk(vector_binomial, "Vector Binomial")
## [1] "Vector: Vector Binomial"
## [1] "Estadístico de prueba: 0.931215212156891"
## [1] "Valor p: 0.00614496029801304"
## [1] "Se rechaza la hipótesis nula de normalidad."
resultado_t_test <- t.test(vector_normal, vector_binomial)
print("Resultado del Test t de Student:")
## [1] "Resultado del Test t de Student:"
print(resultado_t_test)
## 
##  Welch Two Sample t-test
## 
## data:  vector_normal and vector_binomial
## t = -19.202, df = 90.297, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -5.799423 -4.711921
## sample estimates:
##   mean of x   mean of y 
## -0.03567178  5.22000000