#PREGUNTA 2
2.1. ¿Cuál será el resultado de ejecutar las siguientes instrucciones?:
a) x = c(1,3,5,7,9)
x = c(1,3,5,7,9)
print(x)
## [1] 1 3 5 7 9
y = c(2,4,6,7,11,12)
print(y)
## [1] 2 4 6 7 11 12
x+1
## [1] 2 4 6 8 10
y*2
## [1] 4 8 12 14 22 24
print("longitud de x: ")
## [1] "longitud de x: "
length(x)
## [1] 5
print("longitud de y: ")
## [1] "longitud de y: "
length(y)
## [1] 6
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
sum(x>5)
## [1] 2
sum(x[x>5])
## [1] 16
sum(x>5 | x< 3)
## [1] 3
y[2]
## [1] 4
y[-2]
## [1] 2 6 7 11 12
y[x]
## [1] 2 6 11 NA NA
(¿Que significa NA?) #R/ NA se usa para representar datos perdidos, omitidos o faltantes (NA significa ”not available” – se ha perdido el dato)
y[y>=8]
y[y>=8]
## [1] 11 12
#PREGUNTA 2.2. Un conductor europeo de viaje por Estados Unidos apunta las millas recorridas por su coche cada vez que llena el tanque de gasolina. La relación de las últimas 10 veces que lo ha llenado es la siguiente:
millas = c(65241, 65665, 65998, 66014, 66547, 66857, 67025, 67447, 66958, 67002)
kms = 1.609*millas
print(kms)
## [1] 104972.8 105655.0 106190.8 106216.5 107074.1 107572.9 107843.2 108522.2
## [9] 107735.4 107806.2
kms_diff= diff(kms)
print("kms_diff:")
## [1] "kms_diff:"
print(kms_diff)
## [1] 682.216 535.797 25.744 857.597 498.790 270.312 678.998 -786.801
## [9] 70.796
millas_diff= diff(millas)
print("millas_diff:")
## [1] "millas_diff:"
print(millas_diff)
## [1] 424 333 16 533 310 168 422 -489 44
resum_kms=summary(kms)
print("resum_kms:")
## [1] "resum_kms:"
print(resum_kms)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 104973 106197 107324 106959 107789 108522
resum_millas=summary(millas)
print("resum_millas:")
## [1] "resum_millas:"
print(resum_millas)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 65241 66002 66702 66475 66991 67447
#PREGUNTA 2.3. Una persona dispone de un contrato de pago mínimo telefónico, con el que cuenta poder controlar sus gastos. A pesar de esto cada mes tiene que pagar cantidades diferentes, que finalmente decide revisar. En el último año estas cantidades, en euros, han sido las siguientes:
#meses para poder calcular bien los pagos
meses= c("enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre")
#pagos por mes
pagos_telef=c(47,32,40,36,49,31,49,30,49,35,48,32)
print(pagos_telef)
## [1] 47 32 40 36 49 31 49 30 49 35 48 32
pago_total = sum(pagos_telef)
print("El pago total en euros del telefono en el ultimo año ha sido de :")
## [1] "El pago total en euros del telefono en el ultimo año ha sido de :"
print(pago_total)
## [1] 478
pago_prom= mean(c(47, 32, 40, 36, 49, 31, 49, 30, 49, 35, 48, 32))
print("El pago total en en promedio cada mes ha sido de :")
## [1] "El pago total en en promedio cada mes ha sido de :"
print(pago_prom)
## [1] 39.83333
cantid_mini = min(pagos_telef)
print("El pago minimo en euros ha sido de :")
## [1] "El pago minimo en euros ha sido de :"
print(cantid_mini)
## [1] 30
cantid_maxi= max(pagos_telef)
print("El pago maximo en euros ha sido de :")
## [1] "El pago maximo en euros ha sido de :"
print(cantid_maxi)
## [1] 49
mes_pago= cbind(meses,pagos_telef)
print("pago correspondientes a cada mes:")
## [1] "pago correspondientes a cada mes:"
print(mes_pago)
## meses pagos_telef
## [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"
mes_super40= sum(pagos_telef>40)
print("Cantidad de meses en el que su pago fue mayor a 40 euros :")
## [1] "Cantidad de meses en el que su pago fue mayor a 40 euros :"
print(mes_super40)
## [1] 5
porce_mes_super40 = (sum(pagos_telef[pagos_telef > 40])/sum(pagos_telef))*100
print("porcentaje del gasto total de los pagos mayores de 40 euros :")
## [1] "porcentaje del gasto total de los pagos mayores de 40 euros :"
print(porce_mes_super40)
## [1] 50.62762
#PREGUNTA 2.4 Con los datos siguientes: 61 88 73 49 41 72 99 07 12 13 87 91 05 17 97
datos1= c(61, 88, 73, 49, 41, 72, 99, 07, 12, 13, 87, 91, 05, 17, 97)
etiquetas = paste0(round(100 * datos1/sum(datos1), 2), "%")
pie(datos1, labels = etiquetas, main= "Diagrama porcentual", col= rainbow(length(etiquetas)))
resumen_numer = summary(datos1)
print("Resumen numerico de los datos:")
## [1] "Resumen numerico de los datos:"
print(resumen_numer)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 5.00 15.00 61.00 54.13 87.50 99.00
fivenum(datos1)
## [1] 5.0 15.0 61.0 87.5 99.0
#R/Diferencia entre summary(x) y fivenum(x)
La función summary() da un recopiación mas amplio de los datos entre esas incluyendo la media, brindando una percepción mas generaly permitiendo ejecutar valores ausentes.Por otro lado,la funcion Fivenum() no proporciona la media pero esta nos da informacion mas concreta de la distribución de los datos.
#PREGUNTA 2.5
R permite generar datos aleatorios con gran facilidad mediante instrucciones específicas que empiezan con “r” (rnorm, rpois, rbinom,…).
datos2= rnorm(100)
print(datos2)
## [1] -1.586579825 -0.772989388 1.750644057 -0.564975853 -0.024093927
## [6] -1.161933983 -0.265441015 0.953753100 0.436207367 2.017985789
## [11] -0.161073066 0.328118577 0.136791883 0.633187534 -1.349934565
## [16] 0.775870950 0.418412525 0.602334476 0.296125115 0.270474410
## [21] 0.332925536 0.388934354 0.457888655 0.306345182 0.123216331
## [26] -0.524680956 -0.724611846 -0.374234528 -1.004498859 -0.561531036
## [31] 0.042386024 0.689413690 1.113032842 0.876150334 1.031491404
## [36] -0.641177063 0.388226255 -0.455723580 -1.768829352 -1.997994544
## [41] -0.526494564 0.905966112 0.298404806 -0.917972229 2.102778774
## [46] -1.360242045 -0.243917443 -0.391040057 0.868320212 1.861308578
## [51] -1.251654821 0.661046473 0.683877536 0.500480312 -0.188689207
## [56] 0.050565062 1.364441821 0.517569818 0.747090976 0.156706090
## [61] 0.617511559 -1.142712159 -2.323108128 0.244207113 -0.984596858
## [66] -0.979550727 -0.315807286 -0.343052322 -1.752341401 0.308511164
## [71] -0.838254829 0.120493488 -1.043019192 0.258160705 -0.077098721
## [76] 1.700893713 1.266971203 -1.825661950 -0.759049758 -2.056961824
## [81] 1.079782410 -0.252785451 0.992336092 0.244034719 -1.021456551
## [86] -0.124522764 1.626438698 0.188572589 -0.455842229 -1.618190183
## [91] 0.756615034 -1.957745830 1.187884319 -0.174156680 -0.009855824
## [96] -0.433669402 1.179748227 1.065189138 1.198693145 -0.048725159
hist(datos2, col = "red")
#R/ Al repetir el proceso de los vectores generados se observa cambios
generados en el histograma.
summary(datos2)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -2.32311 -0.58403 0.12185 -0.00234 0.66675 2.10278
#PREGUNTA 2.6
De forma similar al ejercicio genera 30 valores de una distribución binomial de parámetros (n=5 y p=0,9).
distri_bino = rbinom(30,5,0.9)
print("valores de distribucion binomial:")
## [1] "valores de distribucion binomial:"
print(distri_bino)
## [1] 5 5 5 5 5 5 4 5 5 5 4 5 5 5 5 4 5 5 5 4 4 5 5 5 4 5 5 4 5 4
barplot(distri_bino, main = "Distribución binomial", xlab = "Valores", ylab = "Frecuencia",col="pink")
¿Qué deberías hacer para obtener un resumen similar?
summary(distri_bino)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 4.000 4.250 5.000 4.733 5.000 5.000
#PREGUNTA 2.7 El número de fallos en los 23 primeros intentos de puesta en órbita de un satélite fue: 0 1 0 NA 0 0 0 0 0 1 1 1 0 0 3 0 0 0 0 0 2 0 1 (NA significa ”not available” – se ha perdido el dato).
Num_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)
print("Numero de fallos en los primeros intentos:")
## [1] "Numero de fallos en los primeros intentos:"
print(Num_fallos)
## [1] 0 1 0 NA 0 0 0 0 0 1 1 1 0 0 3 0 0 0 0 0 2 0 1
barplot(Num_fallos, main = "Numero de fallos en los primeros intentos",col="purple")
boxplot(Num_fallos, main = "Numero de fallos en los primeros intentos",col="orange")
#R/En este caso el diagrama de barras es mas adecuado para la
representacion de estos datos ya que permite visualizar mas facil las
veces que ocurre cada cantidad de fallos sin necesariamente tener en
cuenta la dispersión o la perdida de un dato. Por lo contrario, el uso
del diagrama de cajas no es la mejor opcion en este caso para
representacion de datos ya que no se desea visualizar la dispersion o
valores atipicos.
Num_med_errores = mean(Num_fallos,na.rm = TRUE)
print("Numero medio de errores")
## [1] "Numero medio de errores"
print(Num_med_errores)
## [1] 0.4545455
#PREGUNTA 2.8 En una encuesta en la que se evalúa el funcionamiento de un curso se han recogido las siguientes respuestas de 10 estudiantes a tres preguntas P1, P2 y P3: a) Entra los datos mediante c(), scan(), read.table() y data.entry().
Estudiante = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
print("Estudiante:")
## [1] "Estudiante:"
print(Estudiante)
## [1] 1 2 3 4 5 6 7 8 9 10
P1 = c(3, 3, 3, 4, 3, 4, 3, 4, 4, 3)
print("P1:")
## [1] "P1:"
print(P1)
## [1] 3 3 3 4 3 4 3 4 4 3
P2 = c (5, 5, 2, 2, 5, 2, 2, 5, 5, 2)
print("P2:")
## [1] "P2:"
print(P2)
## [1] 5 5 2 2 5 2 2 5 5 2
P3 = c(1, 3, 1, 3, 3, 3, 1, 3, 1, 1)
print("P3:")
## [1] "P3:"
print(P3)
## [1] 1 3 1 3 3 3 1 3 1 1
tabla = c(P1,P2,P3)
matriz_pregun = matrix(tabla,3,10,byrow = TRUE)
rownames(matriz_pregun)= c("P1","P2","P3")
colnames(matriz_pregun)=paste("Est",Estudiante)
print(matriz_pregun)
## 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
matriz_pregun[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
cat("\n")
cat("\n")
cat("\n")
matriz_pregun[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
pregun_2 = c(P2,P3)
print("pregun_2:")
## [1] "pregun_2:"
print(pregun_2)
## [1] 5 5 2 2 5 2 2 5 5 2 1 3 1 3 3 3 1 3 1 1
pregun_3 = matrix(pregun_2,2,10,byrow = TRUE)
cat("\n")
cat("\n")
print("pregun_3:")
## [1] "pregun_3:"
print(pregun_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(pregun_3,beside=F,xlab = "Estudiantes", col= "brown")
e) Haz un diagrama de barras con las tres preguntas simultáneamente
barplot(matriz_pregun,beside = T,xlab = "Estudiantes",col= "green")
#PREGUNTA 2.9 Genera 2 vectores de 50 valores cada de una distribución
normal con rnorm (50).
vector1=rnorm(50)
print("vector1")
## [1] "vector1"
print(vector1)
## [1] 0.15261953 -0.59664176 -0.07248820 -0.40490033 -1.30362078 1.57451934
## [7] -1.14174946 0.20459517 0.05777972 0.52625231 1.04976745 -1.24645488
## [13] 1.70556314 -0.33922807 -0.11933689 -0.20721460 0.96514616 0.50328838
## [19] -0.72587172 1.40961801 -2.64611719 -0.89046735 -0.19199616 -0.89611787
## [25] 0.35976137 0.67684998 -0.11735431 1.25195921 -1.69093510 0.73242672
## [31] 0.46380417 0.47146683 -1.60142941 0.15437206 -0.18009756 1.16559404
## [37] -0.67656073 0.59453725 0.15775001 0.58113120 -0.51790014 -1.11412176
## [43] -1.65769932 -0.50666678 -0.04663370 -0.38212350 -0.89822866 -2.10482251
## [49] 0.11170157 0.28417494
cat("\n")
cat("\n")
vector2=rnorm(50)
print("vector2")
## [1] "vector2"
print(vector2)
## [1] 0.78426780 -1.99260096 -0.34461364 -0.01132526 0.06402622 2.08484703
## [7] -0.82608608 -0.80485471 -1.87710499 0.15486237 -1.34382981 1.46263568
## [13] 0.50819803 2.42562565 -2.26482371 1.75711027 0.34738978 -0.57491907
## [19] -0.37113679 0.43518623 2.06883846 0.12744733 -0.34052420 0.50967339
## [25] 0.74930556 -0.98327968 0.75137052 0.15754455 -1.36520905 -0.29237698
## [31] -1.51441968 1.28801093 -0.32499841 1.31606023 0.14276164 -0.08208586
## [37] -1.46348410 0.52926068 1.66691783 -0.08992596 -1.71017874 0.80078975
## [43] -0.65664246 -0.13653822 1.82104092 0.40277755 0.71043678 1.28782109
## [49] -0.30244234 -0.21108695
print("shapiro.test 1")
## [1] "shapiro.test 1"
shapiro.test(vector1)
##
## Shapiro-Wilk normality test
##
## data: vector1
## W = 0.98788, p-value = 0.8847
cat("\n")
cat("\n")
print("shapiro.test 2")
## [1] "shapiro.test 2"
shapiro.test(vector2)
##
## Shapiro-Wilk normality test
##
## data: vector2
## W = 0.98389, p-value = 0.7228
print("t-student test 1")
## [1] "t-student test 1"
t.test(vector1)
##
## One Sample t-test
##
## data: vector1
## t = -1.0562, df = 49, p-value = 0.296
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## -0.4134463 0.1285623
## sample estimates:
## mean of x
## -0.142442
cat("\n")
cat("\n")
print("t-student test 2")
## [1] "t-student test 2"
t.test(vector2)
##
## One Sample t-test
##
## data: vector2
## t = 0.56116, df = 49, p-value = 0.5772
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## -0.2307346 0.4095234
## sample estimates:
## mean of x
## 0.08939437
cat("\n")
cat("\n")
print("t-student testS JUNTOS")
## [1] "t-student testS JUNTOS"
t.test(vector1,vector2)
##
## Welch Two Sample t-test
##
## data: vector1 and vector2
## t = -1.1108, df = 95.401, p-value = 0.2695
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.6461722 0.1824995
## sample estimates:
## mean of x mean of y
## -0.14244200 0.08939437
#R/ se debe tener en cuenta que el valor umbral aceptable es de 0.05. #El resultado de la prueba t de Welch muestra un valor de p de 0.1065. Dado que este valor de p es mayor que el umbral aceptado, No se dispone de suficiente evidencia para descartar la hipótesis nula que plantea que las medias de ambos vectores son iguales.
#PREGUNTA 2.10 Genera un vector de 50 valores por medio de rnorm y un vector de 50 valores por medio rbinom.
VECTOR_R1= rnorm(50)
print("rnorm")
## [1] "rnorm"
print(VECTOR_R1)
## [1] -1.14210839 -0.67087685 2.08242403 1.12570630 1.03291131 -0.64596438
## [7] -0.25071951 0.16606114 -1.82019336 -0.02643809 1.36164989 0.69065261
## [13] 0.32656848 0.33149946 0.07912768 0.25388632 1.20429389 -1.01998771
## [19] -0.33809905 -0.37245965 1.35821544 0.60226788 0.64909583 0.97230421
## [25] -1.75563034 -0.10086567 -0.59735619 -0.17990399 1.22883368 0.88988474
## [31] -0.36988453 -1.29015798 1.10860834 -0.15057102 -0.46031614 1.33339586
## [37] 0.51309050 1.06403764 -0.22252930 1.34953772 -0.76226855 -0.07414270
## [43] 1.49846323 -2.56942478 2.15790789 0.40632344 0.33322987 0.53434304
## [49] 1.88134425 0.38421419
cat("\n")
cat("\n")
VECTOR_R2=rbinom(50,6,0.7)
print("rbinom")
## [1] "rbinom"
print(VECTOR_R2)
## [1] 5 4 6 4 4 5 3 4 5 4 4 4 6 5 4 4 5 6 5 5 4 6 4 5 2 4 4 3 5 4 4 4 5 3 2 4 3 3
## [39] 5 5 5 5 3 4 4 6 2 3 4 5
print("test de vector 1")
## [1] "test de vector 1"
shapiro.test(VECTOR_R1)
##
## Shapiro-Wilk normality test
##
## data: VECTOR_R1
## W = 0.98121, p-value = 0.6038
cat("\n")
cat("\n")
print("test de vector 2")
## [1] "test de vector 2"
shapiro.test(VECTOR_R2)
##
## Shapiro-Wilk normality test
##
## data: VECTOR_R2
## W = 0.90573, p-value = 0.0007468
diferencias = t.test(VECTOR_R1,VECTOR_R2)
print(diferencias)
##
## Welch Two Sample t-test
##
## data: VECTOR_R1 and VECTOR_R2
## t = -19.613, df = 97.998, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -4.402528 -3.593472
## sample estimates:
## mean of x mean of y
## 0.2419996 4.2400000
#R/Los resultados de la prueba indican que uno de los vectores se ajusta a una distribución normal, mientras que el otro sigue una distribución nominal; por ende,hay una diferencia significativa entre los dos grupos.