A
x <- c(1, 3, 5, 7, 9)
x
## [1] 1 3 5 7 9
B
y <- c(2, 4, 6, 7, 11, 12)
x
## [1] 1 3 5 7 9
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
c (x,y)
## [1] 1 3 5 7 9 2 4 6 7 11 12
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
datos <- c(1, NA, "Hola", NA, 3.14)
m
y[y>=8]
## [1] 11 12
2.2 A
millas <- c(65241, 65665, 65998, 66014, 66547, 66857, 67025, 67447, 66958, 67002)
B
kms <- millas * 1.609
kms
## [1] 104972.8 105655.0 106190.8 106216.5 107074.1 107572.9 107843.2 108522.2
## [9] 107735.4 107806.2
C
diferencia_millas <- diff(millas)
diferencia_millas
## [1] 424 333 16 533 310 168 422 -489 44
D
# Función para calcular la moda
moda_millas <- function(x) { unique(sort(x))[which.max(tabulate(match(x, unique(x))))] }
# Datos de kilometraje recorrido
millas <- c(65241, 65665, 65998, 66014, 66547, 66857, 67025, 67447, 66958, 67002)
# Medidas de tendencia central
media_millas <- mean(millas)
mediana_millas <- median(millas)
moda_millas <- moda_millas(millas)
# Medidas de dispersión
varianza_millas <- var(millas)
desviacion_estandar_millas <- sd(millas)
IQR_millas <- IQR(millas)
# Medidas de distribución
hist(millas, main = "Histograma de millas recorridas")
qqnorm(millas, main = "Diagrama Q-Q para millas")
density(millas)
##
## Call:
## density.default(x = millas)
##
## Data: millas (10 obs.); Bandwidth 'bw' = 402.8
##
## x y
## Min. :64033 Min. :1.140e-06
## 1st Qu.:65188 1st Qu.:3.527e-05
## Median :66344 Median :2.057e-04
## Mean :66344 Mean :2.160e-04
## 3rd Qu.:67500 3rd Qu.:3.607e-04
## Max. :68655 Max. :5.118e-04
title("Densidad de probabilidad de millas")
# Imprimir estadísticas resumen
print("Media de millas:")
## [1] "Media de millas:"
print(media_millas)
## [1] 66475.4
print("Mediana de millas:")
## [1] "Mediana de millas:"
print(format(mediana_millas, digits = 2))
## [1] "66702"
print("Moda de millas:")
## [1] "Moda de millas:"
print(moda_millas)
## [1] 65241
# Variance (formatting)
print(sprintf("Varianza de millas: %.2f", varianza_millas))
## [1] "Varianza de millas: 503146.04"
# Standard deviation (formatting)
print(sprintf("Desviación estándar de millas: %.2f", desviacion_estandar_millas))
## [1] "Desviación estándar de millas: 709.33"
# IQR (formatting)
print(sprintf("Rango intercuartílico (IQR) de millas: %.2f", IQR_millas))
## [1] "Rango intercuartílico (IQR) de millas: 989.00"
2.3 A
# Datos de gastos telefónicos
gastos <- c(47, 32, 40, 36, 49)
gastos
## [1] 47 32 40 36 49
B
media_gastos <- mean(gastos)
print(sprintf("El gasto promedio por mes es: %.2f euros", media_gastos))
## [1] "El gasto promedio por mes es: 40.80 euros"
C
cantidad_minima <- min(gastos)
cantidad_maxima <- max(gastos)
print(sprintf("La cantidad mínima pagada ha sido: %.2f euros", cantidad_minima))
## [1] "La cantidad mínima pagada ha sido: 32.00 euros"
print(sprintf("La cantidad máxima pagada ha sido: %.2f euros", cantidad_maxima))
## [1] "La cantidad máxima pagada ha sido: 49.00 euros"
D
# Datos de gastos telefónicos
pagos <- c(47, 32, 40, 36, 49, 31, 49, 30, 49, 35, 48, 32)
# Nombres de los meses
meses <- c("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio",
"Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre")
# Imprimir el pago de cada mes
for (i in 1:length(pagos)) {
print(paste0("Pago en ", meses[i], ":", pagos[i], " euros"))
}
## [1] "Pago en Enero:47 euros"
## [1] "Pago en Febrero:32 euros"
## [1] "Pago en Marzo:40 euros"
## [1] "Pago en Abril:36 euros"
## [1] "Pago en Mayo:49 euros"
## [1] "Pago en Junio:31 euros"
## [1] "Pago en Julio:49 euros"
## [1] "Pago en Agosto:30 euros"
## [1] "Pago en Septiembre:49 euros"
## [1] "Pago en Octubre:35 euros"
## [1] "Pago en Noviembre:48 euros"
## [1] "Pago en Diciembre:32 euros"
E
meses_mayores_40 <- which(pagos > 40)
print("Meses en que se pagó más de 40 euros:")
## [1] "Meses en que se pagó más de 40 euros:"
print(meses[meses_mayores_40])
## [1] "Enero" "Mayo" "Julio" "Septiembre" "Noviembre"
F
# Datos de gastos telefónicos
pagos <- c(47, 32, 40, 36, 49, 31, 49, 30, 49, 35, 48, 32)
# Nombres de los meses
meses <- c("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio",
"Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre")
# Calcular el costo total
costo_total <- sum(pagos)
# Calcular el gasto en pagos mayores a 40 euros
gasto_mayor_40 <- sum(pagos[pagos > 40])
# Calcular el porcentaje del gasto total representado por pagos mayores a 40 euros
porcentaje_mayor_40 <- round((gasto_mayor_40 / costo_total) * 100, 2)
# Imprimir el gasto y el porcentaje
print(paste("Gasto total en pagos mayores a 40 euros:", gasto_mayor_40, "euros"))
## [1] "Gasto total en pagos mayores a 40 euros: 242 euros"
print(paste0("Porcentaje del gasto total representado por pagos mayores a 40 euros:",
porcentaje_mayor_40, "%"))
## [1] "Porcentaje del gasto total representado por pagos mayores a 40 euros:50.63%"
# Imprimir el resumen estadístico de los gastos
print("Resumen estadístico de los gastos:")
## [1] "Resumen estadístico de los gastos:"
print(summary(pagos))
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 30.00 32.00 38.00 39.83 48.25 49.00
# Imprimir el histograma de los gastos
hist(pagos, main="Histograma de gastos telefónicos", xlab="Gastos (euros)")
# Imprimir el boxplot de los gastos
boxplot(pagos, main="Boxplot de gastos telefónicos", ylab="Gastos (euros)")
2.4 A
# Se crea un vector con las categorías (en este caso, no hay categorías explícitas, se utilizan los valores como categorías)
categorias <- datos
# Se crea la tabla de frecuencias
tabla_frecuencias <- table(categorias)
# Se calcula la frecuencia relativa (porcentaje)
tabla_porcentajes <- prop.table(tabla_frecuencias) * 100
# Se crea el diagrama de porcentajes (barplot)
barplot(tabla_porcentajes, main = "Diagrama de porcentajes", col = "skyblue")
B
# Resumen de cinco números con `fivenum()`
resumen_cinco_num <- as.numeric(fivenum(pagos))
# Imprimir el resumen de cinco números
print(resumen_cinco_num)
## [1] 30.0 32.0 38.0 48.5 49.0
2.5 A
# Generar 100 valores aleatorios de una distribución normal con media 0 y desviación estándar 1
datos_normales <- rnorm(100, mean = 0, sd = 1)
datos_normales
## [1] 0.07284025 1.23029800 -0.22144116 0.88332211 -0.61038161 -0.07594553
## [7] -1.54707121 -0.39106262 -0.34719748 -0.74074799 1.46691473 1.47707443
## [13] 0.93751187 -0.27646472 0.40937873 -1.48037599 -0.30868349 -0.58146337
## [19] -1.34479902 -0.19682181 -1.22447564 -0.99621771 -0.97143411 2.02458431
## [25] 0.29764126 -0.22534316 -1.14635111 -1.26860283 0.28746664 -0.01149685
## [31] 1.13370567 0.82350148 -0.06179496 -1.01038501 -0.72951868 0.51079245
## [37] 0.95424226 -0.25223236 0.61386054 0.85230416 1.26011835 -0.11931859
## [43] -0.77521413 1.17036114 0.63451980 -0.05846645 -0.40309334 1.23622192
## [49] 0.14141029 -0.89247266 -1.82708889 0.87681066 0.81472143 -0.49976950
## [55] -0.34232398 0.25449234 0.86522679 -1.18804121 0.13877247 0.53135374
## [61] 0.02299365 -0.93642145 1.09391562 -0.00315208 0.15287969 1.37556972
## [67] 1.55989871 -1.58601683 0.66173748 -0.40422311 1.22997753 1.22462564
## [73] 1.28877676 -1.23376390 -0.63261883 -0.67160916 -1.90967068 -0.20248324
## [79] -2.05315454 -0.92257441 -1.36247560 -0.35477501 0.16855532 1.89264409
## [85] -0.68001980 -0.77079395 0.26644141 0.07002915 -0.21260326 -0.25010827
## [91] -0.63231534 0.58602811 -1.40220746 0.96203831 -1.50836636 0.20234886
## [97] 2.49160831 0.08366749 1.09105065 -1.09242583
B
# Crear un histograma de los datos generados
hist(datos_normales, main = "Histograma de datos normales (primera ejecución)")
# Repetir el proceso dos veces más para observar la variabilidad
datos_normales2 <- rnorm(100, mean = 0, sd = 1)
hist(datos_normales2, main = "Histograma de datos normales (segunda ejecución)")
datos_normales3 <- rnorm(100, mean = 0, sd = 1)
hist(datos_normales3, main = "Histograma de datos normales (tercera ejecución)")
C
# Resumen numérico de los datos generados
resumen_datos <- summary(datos_normales)
print(resumen_datos)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -2.05315 -0.73233 -0.06887 -0.02624 0.81692 2.49161
2.6 A
# Generar 30 valores aleatorios de una distribución binomial con n=5 y p=0.9
datos_binomiales <- rbinom(30, size = 5, prob = 0.9)
# Diagrama de barras para representar los resultados
barplot(datos_binomiales, main = "Distribución binomial (diagrama de barras)")
# Diagrama de pastel para representar los resultados
pie(datos_binomiales, labels = paste0("Éxitos (", datos_binomiales, ")", sep = ": "),
main = "Distribución binomial (diagrama de pastel)")
B
# Resumen numérico de los datos binomiales
resumen_datos_binomiales <- summary(datos_binomiales)
print(resumen_datos_binomiales)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 3.0 4.0 5.0 4.6 5.0 5.0
# Comparación con el resumen del ejercicio anterior
# El resumen del ejercicio anterior corresponde a una distribución normal.
# Los resúmenes de distribuciones aleatorias varían entre sí por naturaleza.
# No se puede esperar que los resúmenes numéricos sean exactamente iguales.
2.7 A
# Datos de fallos en lanzamientos de satélite
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)
# Generar el diagrama de barras
barplot(fallos, main = "Número de fallos en lanzamientos de satélite (diagrama de barras)")
B
# Tabular los datos
tabla_fallos <- table(fallos)
# Calcular el número medio de errores
media_fallos <- mean(fallos, na.rm=TRUE)
# Imprimir el resultado
print(paste("Número medio de fallos:", media_fallos))
## [1] "Número medio de fallos: 0.454545454545455"
2.8 A
This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.
When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
summary(cars)
## speed dist
## Min. : 4.0 Min. : 2.00
## 1st Qu.:12.0 1st Qu.: 26.00
## Median :15.0 Median : 36.00
## Mean :15.4 Mean : 42.98
## 3rd Qu.:19.0 3rd Qu.: 56.00
## Max. :25.0 Max. :120.00
You can also embed plots, for example:
Note that the echo = FALSE parameter was added to the
code chunk to prevent printing of the R code that generated the
plot.