# 2.1
x = c(1,3,5,7,9)
y = c(2,4,6,7,11,12)
c = x+1
cat("El resultado, es:", c, "\n")
## El resultado, es: 2 4 6 8 10
#b)
y = c(2,4,6,7,11,12) 
cat("El resultado es:", c, "\n")
## El resultado es: 2 4 6 8 10
#c
c = x+1
cat("El resultado es:", c, "\n")
## El resultado es: 2 4 6 8 10
d = y*2
cat("El resultado es:", d, "\n")
## El resultado es: 4 8 12 14 22 24
e = length(x)
cat("El resultado es:", e, "\n")
## El resultado es: 5
e_2 = length(y)
cat("El resultado es:", e_2, "\n")
## El resultado es: 6
f = x+y
## Warning in x + y: longitud de objeto mayor no es múltiplo de la longitud de uno
## menor
cat("El resultado es:", f, "\n")
## El resultado es: 3 7 11 14 20 13
g = sum(x>5) 
cat("El resultado es:", g, "\n")
## El resultado es: 2
g_2 = sum(x[x>5]) 
cat("El resultado es:", g_2, "\n")
## El resultado es: 16
h = sum(x>5 | x< 3) 
cat("El resultado es:", h, "\n")
## El resultado es: 3
i = y[2]
cat("El resultado es:", i , "\n")
## El resultado es: 4
j = y[-2]
cat("El resultado es:", j , "\n")
## El resultado es: 2 6 7 11 12
k = y[x]
cat("El resultado es:", k, "\n")
## El resultado es: 2 6 11 NA NA
#l)(¿Que significa NA?)
cat("El resultado de l significa =  (not available) representa un valor desconocido o Ausencia de valores", "\n") 
## El resultado de l significa =  (not available) representa un valor desconocido o Ausencia de valores
m = y[y>=8]
cat("El resultado es:", m, "\n")
## El resultado es: 11 12
#2.2

#a) millas 
millas = c(65241, 65665, 65998, 66014, 66547, 66857, 67025, 67447, 66958, 67002)

#b)millas a Km
kms = 1.609*millas
kms_1 = round(kms, 1)
print(kms_1) 
##  [1] 104972.8 105655.0 106190.8 106216.5 107074.1 107572.9 107843.2 108522.2
##  [9] 107735.4 107806.2
#c) 
di_f = diff(millas)
print(di_f)
## [1]  424  333   16  533  310  168  422 -489   44
di_f2 = diff(kms)
di_fee = round(di_f2,1)
print(di_fee)
## [1]  682.2  535.8   25.7  857.6  498.8  270.3  679.0 -786.8   70.8
#d)
resumen = summary(di_fee)
print(resumen)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  -786.8    70.8   498.8   314.8   679.0   857.6
#2.3
pagos=c(47,32,40,36,49,31,49,30,49,35,48,32)
meses= c("enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre")

# a)
costo = sum(pagos)
cat("El costo de la factura es:",costo, "euros\n")
## El costo de la factura es: 478 euros
#b)
b = mean(pagos)
b = round(b,2)
cat("El pago promedio por mes es:",b, "euros\n")
## El pago promedio por mes es: 39.83 euros
#c) MAX y MIN
c_1 = max(pagos)
cat("El pago máximo es:",c_1, "euros\n")
## El pago máximo es: 49 euros
c_2 = min(pagos)
cat("El pago mínimo es:",c_2, "euros\n")
## El pago mínimo es: 30 euros
#d)  pagos vs meses
meses_pagos= cbind(meses,pagos)
meses_pagos
##       meses        pagos
##  [1,] "enero"      "47" 
##  [2,] "febrero"    "32" 
##  [3,] "marzo"      "40" 
##  [4,] "abril"      "36" 
##  [5,] "mayo"       "49" 
##  [6,] "junio"      "31" 
##  [7,] "julio"      "49" 
##  [8,] "agosto"     "30" 
##  [9,] "septiembre" "49" 
## [10,] "octubre"    "35" 
## [11,] "noviembre"  "48" 
## [12,] "diciembre"  "32"
#f) porcentaje
x = sum(pagos[pagos > 40])
print(x)
## [1] 242
y = sum(pagos)
print(y)
## [1] 478
operacion = ((x*100)/y)
porcentaje = round(operacion,1)
cat("Los pagos superiores a 40 euros:",porcentaje, "%\n")
## Los pagos superiores a 40 euros: 50.6 %
# 2.4
datos = c(61, 88, 73, 49, 41, 72, 99, 07, 12, 13, 87, 91, 05, 17, 97)

# a) diagrama de porcentual
etiquetas = paste0(round(100 * datos/sum(datos), 2), "%")
pie(datos, labels = etiquetas)

# b), resúmen numéricos

# Resumen numérico básico
resumen_basico = summary(datos)
print(resumen_basico)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    5.00   15.00   61.00   54.13   87.50   99.00
# Desv.estándar
desviacion_estandar = sd(datos)
desviacion_estandar = round(desviacion_estandar,2)
cat("La DE es:",desviacion_estandar, "\n")
## La DE es: 35.7
varianza = var(datos)
varianza = round(varianza, 2)
cat("La varianza es:",varianza, "\n")
## La varianza es: 1274.27
#c) diferencia entre summary / fivenum
fivenum(datos)
## [1]  5.0 15.0 61.0 87.5 99.0
# Diferencias: aunque para este caso se tiene los mismos valores al aplicar las funciones, "summary" nos permite trabajar con valores ausentes, a diferencia que "fivenum" proporciona 5 números clave
#2.5
#a) 
a_numeros = rnorm(100)
a_numeros
##   [1] -0.679942665 -0.462683617 -0.837424946 -1.076159015  0.014068720
##   [6] -0.910384168  1.680137811 -0.458617652 -0.159928273 -0.228950133
##  [11]  0.402374127  0.784280713 -1.243516277  0.733188085 -0.341993414
##  [16] -0.546988845 -0.465474411  1.392758389  0.481631605 -0.069427077
##  [21]  1.666707316 -1.293001732  0.196812904 -0.156933957 -0.931037284
##  [26]  0.113045427  0.528796774 -0.536023629  0.238893398  1.043560928
##  [31] -1.692906078 -0.090464702 -2.680877597 -2.542260649  0.159812883
##  [36]  1.506757719  0.842020893 -0.209762525 -2.308922033  2.046052807
##  [41]  0.427207093  1.137799171 -1.390996485  0.443188314 -0.824407803
##  [46]  1.840866218  2.089320176  0.266489301 -0.796049549 -0.040155468
##  [51] -1.468774449 -2.444604156 -1.310050825  0.028434892 -1.955587937
##  [56]  0.331619386  0.747321854  1.384885760  0.280670604 -0.299176136
##  [61] -1.508897914 -0.840564383 -0.554564093  0.874914875  0.716722788
##  [66]  0.573308715  0.773131096  0.850023321 -0.824100183  0.771804663
##  [71] -0.023477662  0.711832450  0.867389712 -0.199618286  0.107737012
##  [76]  0.008497403 -1.143268514  1.749245037  0.289300645 -0.170731383
##  [81] -1.301222258  1.188079625  0.204959374  0.502696334 -1.277690578
##  [86]  1.304434595  0.547156381 -0.666251920  1.126968158 -0.050510621
##  [91] -0.681478095  0.489716236 -0.188390775  1.413791270  0.524452371
##  [96]  0.340781059  0.063535115  0.805432492 -0.164389500  0.838741703
#b) 
hist(a_numeros, main="Valores con rnorm")

#Al repetir los valores del vector generado por la función rnomr cambian entonces, el histograma no es el mismos

# Punto c, resumen de los datos
summary(a_numeros)
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
## -2.680878 -0.669675  0.045985  0.004047  0.736722  2.089320
# Ejercico 2.6 datos aleatorios / rbinom
aleatorio = rbinom(30,5,0.9)
aleatorio
##  [1] 5 5 3 5 5 4 4 4 5 5 4 4 5 5 5 5 5 5 5 5 4 5 5 5 4 5 5 5 4 5
#a
barplot(rbinom(30,5,0.9))

#b)
summary(aleatorio)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   3.000   4.000   5.000   4.667   5.000   5.000
#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)

# a) diagrama de cajas / barras
boxplot(fallos) # El diagrama de cajas no es la mejor representación para este caso

barplot(fallos, xlab = "Intentos", ylab = "Fallos", main = "Satélite en Orbita")

# b) número medio de errores
fallos_satelite = fallos[!is.na(fallos)]
round(mean(fallos_satelite),2)
## [1] 0.45
#  2.8 
Estudiante = 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) 

#b) tabulación
tabla = c(P1,P2,P3)
matriz = matrix(tabla,3,10,byrow = TRUE)
rownames(matriz)= c("P1","P2","P3")
colnames(matriz)=paste("Est",1:10)
matriz
##    Est 1 Est 2 Est 3 Est 4 Est 5 Est 6 Est 7 Est 8 Est 9 Est 10
## P1     3     3     3     4     3     4     3     4     4      3
## P2     5     5     2     2     5     2     2     5     5      2
## P3     1     3     1     3     3     3     1     3     1      1
#c)
matriz[2,]
##  Est 1  Est 2  Est 3  Est 4  Est 5  Est 6  Est 7  Est 8  Est 9 Est 10 
##      5      5      2      2      5      2      2      5      5      2
matriz[3,]
##  Est 1  Est 2  Est 3  Est 4  Est 5  Est 6  Est 7  Est 8  Est 9 Est 10 
##      1      3      1      3      3      3      1      3      1      1
# d) diagrama de barras apilada 
Datos_2 = c(P2,P3)
Datos_3 = matrix(Datos_2,2,10,byrow = TRUE)
Datos_3
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## [1,]    5    5    2    2    5    2    2    5    5     2
## [2,]    1    3    1    3    3    3    1    3    1     1
barplot(Datos_3,beside=F,xlab = "Estudiantes")

# e) diagrama barras con tres preguntas
barplot(matriz,beside = T,xlab = "Estudiantes")

# 2.9 
vec_1 = rnorm(50)
vec_1
##  [1]  1.01025970  0.68558594 -1.27426311  2.09175392  1.16297576  0.36289982
##  [7] -1.36682198  0.36317761  1.49440832 -1.12529548  0.87686972  0.06262610
## [13] -0.55488428  0.59700423  2.21125914 -0.96286292 -0.30348124 -0.54109641
## [19]  0.63861946 -1.36034288 -0.26707298  0.36048686  0.61840218  0.98566648
## [25]  2.01973283  0.44754421  0.88606746  0.46464858 -0.88753867  1.15221832
## [31] -0.37494583 -0.25658903 -0.65785149 -0.26090955 -0.27973928  1.18739632
## [37] -0.48178699 -0.16363280 -0.99239767  1.89513229 -0.35726115  0.57608589
## [43] -1.10483729 -0.81004592 -1.27925757 -1.27776028  1.37081978  0.31259946
## [49]  0.13629386 -0.07073616
vec_2 = rnorm(50)
vec_2
##  [1] -0.434859514  0.771407297  0.471867879  0.517587921 -0.719332104
##  [6]  0.907022611 -0.585658051  0.256526729  0.178869737 -0.274907093
## [11] -0.693807762  0.330834478  0.972840567  1.241153586  0.554512138
## [16] -0.707255254 -0.292488149 -1.233109240  1.246938402 -0.216256031
## [21]  0.690227725  1.034570153  1.063123639 -0.058916007 -0.669856684
## [26]  0.003315491  0.528130032  0.459604736 -0.462345036  0.774601717
## [31] -0.870588083  0.474123090 -0.858046456 -1.655419751  0.234431113
## [36] -0.286646792  0.477700754  0.657791257 -1.831331096 -0.385044017
## [41] -1.136345916 -2.054551143 -0.162398406 -0.238299382 -0.663949676
## [46] -2.288168752 -1.568827983 -0.348455212 -0.148561012  0.455489458
#a) Shapiro-Wilk test // prueba de normalidad
shapiro.test(vec_1)
## 
##  Shapiro-Wilk normality test
## 
## data:  vec_1
## W = 0.96461, p-value = 0.1387
shapiro.test(vec_2)
## 
##  Shapiro-Wilk normality test
## 
## data:  vec_2
## W = 0.96181, p-value = 0.1059
#NOTA: p-value > 0.05 se asume una Distribución Normal

# b) t-student test
TEST = t.test(vec_1,vec_2)
TEST
## 
##  Welch Two Sample t-test
## 
## data:  vec_1 and vec_2
## t = 1.4615, df = 96.523, p-value = 0.1471
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -0.09668578  0.63676088
## sample estimates:
##  mean of x  mean of y 
##  0.1391825 -0.1308551

NOTA: p-value > 0.05, no se pueden considerar significativas las diferencias entre los vectores.

# 2.10 - Vectores
vec_3 = rnorm(50)
vec_3
##  [1] -0.3220133022  2.4453331002 -0.6797835846  0.1344395863  1.5780058782
##  [6] -1.3417584355 -0.3835430439 -0.3787341898  1.7743654001  0.9242626534
## [11] -0.1559885511  0.8805334136  0.8084594784  0.7712234159 -0.2271996878
## [16]  0.0248339418  1.2426288980  0.4849038254 -0.2389085933  0.3501347512
## [21]  0.4014921455  1.1779424730 -0.2402895024 -1.1550637325  0.6463656712
## [26] -1.6637454957  2.1039612636  0.5440526259  0.7422694407  0.1394449108
## [31]  0.0982497370 -0.6293186848  0.0809747747 -0.0528799350 -0.0007330756
## [36] -0.1597695348  0.6039137063 -0.8761238214 -2.0373392765  0.0422652142
## [41] -0.6729904318  1.0752593572 -0.8332671918 -0.4290116227  0.4824909614
## [46] -1.1914859242 -1.2461841785  0.9226740012 -1.2504197188  1.1568806762
vec_4 = rbinom(50,3,0.9)
vec_4
##  [1] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 2 3 3 3 3 3 3 2 3 3 3 3 3 3 2 3
## [39] 3 3 3 2 1 3 3 3 2 2 2 3
# a) Shapiro-Wilk test // prueba de normalidad
shapiro.test(vec_3)
## 
##  Shapiro-Wilk normality test
## 
## data:  vec_3
## W = 0.99335, p-value = 0.9934
shapiro.test(vec_4)
## 
##  Shapiro-Wilk normality test
## 
## data:  vec_4
## W = 0.4872, p-value = 5.686e-12
#NOTA: p-value > 0.05 se asume una Distribución Normal

# b) t-student test
TEST = t.test(vec_3,vec_4)
TEST
## 
##  Welch Two Sample t-test
## 
## data:  vec_3 and vec_4
## t = -17.925, df = 69.67, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -2.989975 -2.391193
## sample estimates:
## mean of x mean of y 
## 0.1094162 2.8000000

NOTA: p-value > 0.05, no se pueden considerar significativas las diferencias entre los vectores.