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

R Markdown

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

Including Plots

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.