2.1. ¿Cuál será el resultado de ejecutar las siguientes instrucciones?:
x = c(1,3,5,7,9)
y = c(2,4,6,7,11,12)
x+1
## [1] 2 4 6 8 10
y*2
## [1] 4 8 12 14 22 24
length(x) & length(y)
## [1] TRUE
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
“No tienen la misma londitud, no se pueden sumar”
sum(x>5) & sum(x[x>5])
## [1] TRUE
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
(NA)
## [1] NA
y[y>=8]
## [1] 11 12
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=millas*1609
diff(millas)
## [1] 424 333 16 533 310 168 422 -489 44
diff(kms)
## [1] 682216 535797 25744 857597 498790 270312 678998 -786801 70796
summary(kms)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 104972769 106197218 107323518 106958919 107788519 108522223
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: 47, 32, 40, 36, 49, 31, 49, 30, 49, 35, 48, 32
facturas=c(47, 32, 40, 36, 49, 31, 49, 30, 49, 35, 48, 32)
tail(facturas,n=1)
## [1] 32
mean(facturas)
## [1] 39.83333
min(facturas)
## [1] 30
max(facturas)
## [1] 49
meses=c("Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic")
matrix = cbind (meses, facturas)
matrix
## meses facturas
## [1,] "Ene" "47"
## [2,] "Feb" "32"
## [3,] "Mar" "40"
## [4,] "Abr" "36"
## [5,] "May" "49"
## [6,] "Jun" "31"
## [7,] "Jul" "49"
## [8,] "Ago" "30"
## [9,] "Sep" "49"
## [10,] "Oct" "35"
## [11,] "Nov" "48"
## [12,] "Dic" "32"
sum(facturas > 40)
## [1] 5
parcial=sum(facturas[facturas>40])#
porcentaje=parcial/sum(facturas)*100
porcentaje
## [1] 50.62762
2.4. Con los datos siguientes: 61, 88, 73, 49, 41, 72, 99, 07, 12, 13, 87, 91, 05, 17, 97
diagrama=c(61, 88, 73, 49, 41, 72, 99, 07, 12, 13, 87, 91, 05, 17, 97)
etiquetas= c("1", "2", "3", "4", "5")
pie(diagrama, main="Diagrama porcentual")
head(diagrama)
## [1] 61 88 73 49 41 72
summary(diagrama)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 5.00 15.00 61.00 54.13 87.50 99.00
fivenum(diagrama)
## [1] 5.0 15.0 61.0 87.5 99.0
“R/ Se puede ver que”summary” muestra los datos un poco mas especificos, mientras “fivenum” los ubica en un vector sin mencionar a que tipo de dato pertenece.”
2.5. R permite generar datos aleatorios con gran facilidad mediante instrucciones específicas que empiezan con “r” (rnorm, rpois, rbinom,…).
CIEN_VALORES= rnorm(100)
CIEN_VALORES
## [1] -1.332258662 -0.136139790 0.099560969 1.336278399 -1.031388960
## [6] -0.225046513 1.755281691 1.397596273 -1.577527742 -1.259075675
## [11] -1.306179074 -1.027254033 -0.496007598 1.573740708 -0.739747293
## [16] -1.825214873 -0.209195433 -0.039797468 -0.416543273 -1.287628274
## [21] -0.205132630 -0.728168850 -0.672619088 2.270708551 -0.568658269
## [26] 1.605731061 0.025590383 0.920973594 0.492785215 1.595852658
## [31] 0.242031229 -0.086698899 0.402815638 -1.470090688 0.389781026
## [36] 0.872378370 2.569235051 -0.188291139 -0.752223063 1.732987882
## [41] 1.600403046 -1.036171265 -1.651159386 0.738441322 -1.854598753
## [46] 0.979125976 1.614613530 -0.713387210 -1.019800303 1.512661945
## [51] -2.569556473 0.552535578 1.817916092 0.523654391 0.803417786
## [56] -0.746464728 -0.019333214 -1.244518220 -0.414824949 0.169066998
## [61] -0.779669375 -0.310405439 -0.327429968 -2.875736668 1.314734710
## [66] -0.163446816 -1.097041739 0.571628316 0.011533033 0.294528285
## [71] -0.535321137 1.094254984 -0.386410571 -0.870080090 1.315615780
## [76] -0.092227269 -0.447436819 0.699553454 0.953936934 0.829552384
## [81] 0.600764121 0.250941780 0.001711249 0.241833946 1.290193330
## [86] -0.616424961 1.846728514 -1.614186830 0.579600655 -1.662519494
## [91] 1.149814293 0.040140557 -1.184278076 -1.026133306 0.890274847
## [96] -0.059831283 0.368848349 1.307796397 -0.555638904 1.364942900
hist(CIEN_VALORES)
Cuando se ejecuta el programa los valores cambian y junto con ellos el histograma.
summary(CIEN_VALORES)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -2.87574 -0.74143 -0.02957 0.03159 0.87685 2.56924
2.6. De forma similar al ejercicio genera 30 valores de una distribución binomial de parámetros (n=5 y p=0,9).
VALBINOM= rbinom(30, size=5, prob=0.9)
VALBINOM
## [1] 4 4 5 5 5 5 4 5 5 4 5 4 3 4 5 3 5 4 4 4 5 5 4 5 5 4 4 5 4 5
VALBINOM
## [1] 4 4 5 5 5 5 4 5 5 4 5 4 3 4 5 3 5 4 4 4 5 5 4 5 5 4 4 5 4 5
pie(table(VALBINOM), main="Distribución Binomial")
summary(VALBINOM)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 3.000 4.000 4.500 4.433 5.000 5.000
“R/ La grafica de diagrama de pastel muestra mayor variación que el histograma anterior, por lo que se deberia tener una distribucion normal para que sean mas similares ambas graficas.”
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)
boxplot(NUM_FALLOS)
barplot(NUM_FALLOS)
R/ “El diagrama de cajas no nos proporciona la información de forma precisa, habría que suministrar otros datos, en mi opinión es mas adecuada la representación de un diagrama de barras.”
errores = mean(NUM_FALLOS,na.rm = TRUE)
errores
## [1] 0.4545455
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:
Estudiantes= c("P1","P2","P3")
E1=c(3,5,1)
E2=c(3,5,3)
E3=c(3,2,1)
E4=c(4,2,3)
E5=c(3,5,3)
E6=c(4,2,3)
E7=c(3,2,1)
E8=c(4,5,3)
E9=c(4,5,1)
E10=c(3,2,1)
tabla = data.frame(Estudiante = Estudiantes, E1 = E1, E2 = E2, E3 = E3, E4 = E4, E5 = E5, E6 = E6, E7 = E7, E8 = E8, E9 = E9, E10 = E10)
print(tabla)
## Estudiante E1 E2 E3 E4 E5 E6 E7 E8 E9 E10
## 1 P1 3 3 3 4 3 4 3 4 4 3
## 2 P2 5 5 2 2 5 2 2 5 5 2
## 3 P3 1 3 1 3 3 3 1 3 1 1
“R/ a) datos mediante c().”
datos=matrix(c(3,5,1,3,5,3,3,2,1,4,2,3,3,5,3,4,2,3,3,2,1,4,5,3,4,5,1,3,2,1),nrow = 3)
rownames(datos)=c("P1","P2","P3")
colnames(datos)=paste0("E",1:ncol(datos))
datos
## E1 E2 E3 E4 E5 E6 E7 E8 E9 E10
## 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
P1=datos[1,]
P1
## E1 E2 E3 E4 E5 E6 E7 E8 E9 E10
## 3 3 3 4 3 4 3 4 4 3
P2=datos[2,]
P2
## E1 E2 E3 E4 E5 E6 E7 E8 E9 E10
## 5 5 2 2 5 2 2 5 5 2
P3=datos[3,]
P3
## E1 E2 E3 E4 E5 E6 E7 E8 E9 E10
## 1 3 1 3 3 3 1 3 1 1
tabla=c("P1","P2","P3")
matriz= matrix(tabla,3,10,byrow=TRUE)
ROW = rownames(matriz)=c("P1","P2","P3")
COL = colnames(matriz)=paste("Estudiantes",1:10)
matriz[2,]
## Estudiantes 1 Estudiantes 2 Estudiantes 3 Estudiantes 4 Estudiantes 5
## "P2" "P3" "P1" "P2" "P3"
## Estudiantes 6 Estudiantes 7 Estudiantes 8 Estudiantes 9 Estudiantes 10
## "P1" "P2" "P3" "P1" "P2"
grafica1= barplot(matrix(c(P1,P2),nrow=2,byrow=T),
main = "GRAFICA DEL CURSO",
xlab = "Estudiantes", col = c("pink","violet"))
legend("topleft",c("P2","P3"), fill = c("pink","violet"))
grafica2=barplot(datos,
main = "GRAFICA DEL CURSO SEGUNDA PARTE",
xlab = "Estudiantes",col = c("blue","pink","violet"),beside = TRUE)
legend("topleft",c("Pregunta 1","Pregunta 2","Pregunta 3"),
fill = c("blue","pink","violet"))
2.9. Genera 2 vectores de 50 valores cada de una distribución normal con rnorm (50).
vector1 = rnorm(50)
print(vector1)
## [1] -0.60101460 -0.86346203 -0.44659949 -1.11097402 2.00716379 -0.05644252
## [7] -1.98484206 -0.02235612 -0.19193580 1.49047576 0.27262974 -0.10154471
## [13] -0.99869045 -0.79417198 -2.39501154 0.33696864 -0.51970653 -0.70677004
## [19] 0.84807555 -0.71072682 -0.43007325 0.16988105 0.70812823 -1.12488186
## [25] 0.42839323 -0.25264225 -1.19676355 -1.34047353 -1.18740970 1.29597749
## [31] 0.69214584 1.12392527 -0.75568411 -1.21859025 -2.27647374 0.89791319
## [37] -1.33706445 -0.98309000 -0.57021017 -0.92528624 0.02508351 0.50558367
## [43] -0.67828466 -0.07334505 -0.67653961 -1.39650148 0.04294547 -1.02139944
## [49] -0.65633380 0.69205432
vector2 = rnorm(50)
print(vector2)
## [1] 0.68992186 -0.19778799 1.29926815 0.93649843 1.04102226 -1.05121630
## [7] -2.19412589 0.26360956 0.23829973 0.30119816 0.11335976 0.21059209
## [13] -0.37415779 0.63378971 -0.78322230 -0.95666129 -0.68274364 -0.70879924
## [19] 0.81642948 0.20272297 -0.16629595 -0.61043638 1.15756104 -0.36214112
## [25] 0.69780348 1.38593460 0.99697252 0.97279452 -0.44165468 -0.68426473
## [31] -0.91811944 -1.80102773 -0.48624818 1.14262949 -2.20575371 -0.83251157
## [37] -0.25713834 -0.25143693 -1.79634651 0.26453093 -0.00396740 0.74612304
## [43] -0.02322536 -0.50189939 0.15881228 0.53647032 0.63940486 -0.21720039
## [49] -0.53054381 2.37389635
shapiro_test_vector1 = shapiro.test(vector1)
print(shapiro_test_vector1)
##
## Shapiro-Wilk normality test
##
## data: vector1
## W = 0.98295, p-value = 0.6812
shapiro_test_vector2 = shapiro.test(vector2)
print(shapiro_test_vector2)
##
## Shapiro-Wilk normality test
##
## data: vector2
## W = 0.97907, p-value = 0.5136
t_test_result = t.test(vector1, vector2)
print(t_test_result)
##
## Welch Two Sample t-test
##
## data: vector1 and vector2
## t = -1.7963, df = 98, p-value = 0.07553
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.70924238 0.03529556
## sample estimates:
## mean of x mean of y
## -0.36135902 -0.02438561
2.10. Genera un vector de 50 valores por medio de rnorm y un vector de 50 valores por medio rbinom.
vector_rnorm =rnorm(50)
print(vector_rnorm)
## [1] -0.44179640 0.22818019 -0.42145562 0.16797986 0.69325967 -0.39199459
## [7] -0.83139242 0.11159238 -1.35854572 -0.91769239 0.38332229 -1.44122209
## [13] 0.70966988 0.11330529 0.71649675 -0.72575944 0.97279077 0.17978315
## [19] -0.38083825 -0.86192949 0.33670963 0.40218927 0.61161370 -0.09506194
## [25] -0.20253256 0.06252016 -0.59910684 0.34646906 0.21561609 0.36058062
## [31] -0.15324753 -0.97957806 -0.23993057 2.76723296 1.33145900 -0.48352584
## [37] 0.30677836 0.44959846 -1.51488429 -1.35198177 -0.19314908 1.29609043
## [43] -0.51940223 -1.23450859 -0.32888286 0.36931722 1.99808705 -0.14813564
## [49] 0.31689722 -1.08560308
vector_rbinom =rbinom(50, size = 1, prob = 0.5)
print(vector_rbinom)
## [1] 1 1 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1
## [39] 1 0 1 1 0 1 0 0 0 0 0 1
shapiro_test_rnorm = shapiro.test(vector_rnorm)
print(shapiro_test_rnorm)
##
## Shapiro-Wilk normality test
##
## data: vector_rnorm
## W = 0.95619, p-value = 0.06156
shapiro_test_rbinom = shapiro.test(vector_rbinom)
print(shapiro_test_rbinom)
##
## Shapiro-Wilk normality test
##
## data: vector_rbinom
## W = 0.63157, p-value = 5.904e-10
t_test_result =t.test(vector_rnorm, vector_rbinom)
print(t_test_result)
##
## Welch Two Sample t-test
##
## data: vector_rnorm and vector_rbinom
## t = -3.3536, df = 79.277, p-value = 0.001225
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.7474932 -0.1906915
## sample estimates:
## mean of x mean of y
## -0.02909236 0.44000000