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"))
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)
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()
datos_encuesta <- read.table(“datos_encuesta.csv”, header = TRUE, sep = “,”)
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