Ejercicio 1
car_data<-read_excel("C:\\Users\\divis\\Downloads\\datosRendimientos.xlsx", na="")
dim(car_data)
## [1] 356 14
### 2
which(is.na(car_data[,14]))
## [1] 68 182
length(which(is.na(car_data[,3])))
## [1] 9
loc_nac<-rep(NA, 14)
for (i in 1:14){
loc_nac[i]<-length(which(is.na(car_data[,i])))
}
loc_nac
## [1] 0 0 9 2 2 2 2 2 2 2 2 10 2 2
### 3
str(car_data)
## tibble [356 x 14] (S3: tbl_df/tbl/data.frame)
## $ No : num [1:356] 1 2 3 4 5 6 7 8 9 10 ...
## $ Marca : chr [1:356] "Acura" "Acura" "Acura" "Acura" ...
## $ MAKE MODEL : chr [1:356] "ILX" "RLX" "RLX HYBRID" "TLX" ...
## $ CLASS : chr [1:356] "C" "M" "M" "C" ...
## $ ENGINE SIZE (L) : num [1:356] 2.4 3.5 3.5 2.4 3.5 1.8 5.9 6 6 4.7 ...
## $ CYLINDERS : num [1:356] 4 6 6 4 6 4 12 12 12 8 ...
## $ TRANSMISSION : chr [1:356] "AM8" "AS6" "AM7" "AM8" ...
## $ FUEL TYPE : chr [1:356] "Z" "Z" "Z" "Z" ...
## $ CONSUMPTION CITY (L/100 KM) : num [1:356] 9.3 11.9 8 9.6 11.2 9.7 18 16.8 17.6 17.4 ...
## $ CONSUMPTION HIGHWAY (L/100 KM) : num [1:356] 6.6 7.7 7.5 6.6 7.5 6.9 12.6 10.9 11.4 11.3 ...
## $ CONSUMPTION COMBINED (L/100 KM): num [1:356] 8.1 10 7.7 8.3 9.6 8.4 15.6 14.2 14.8 14.7 ...
## $ $ PER YEAR : num [1:356] 2009 2480 1910 2058 2381 ...
## $ CO2 EMISSIONS (g/km) : num [1:356] 189 235 180 196 226 197 365 332 346 343 ...
## $ CO2 RATING : num [1:356] 7 5 7 7 5 7 2 3 3 3 ...
### 4
car_data_l<-car_data
for (i in c(5,6,9,10,11,12,13,14)) {
for (k in 1:356) {
if (is.na(car_data_l[k,i])) {
car_data_l[k,i]<-0
}
else {
car_data_l[k,i]<-car_data_l[k,i]
}
}
}
### 5
anyDuplicated(car_data)
## [1] 0
### 6
plot(car_data$CYLINDERS, car_data$`CONSUMPTION COMBINED (L/100 KM)` )

hrf<-mean(car_data_l$`CONSUMPTION COMBINED (L/100 KM)`)-sd(car_data_l$`CONSUMPTION COMBINED (L/100 KM)`)
which(car_data_l$`CONSUMPTION COMBINED (L/100 KM)`<=hrf)
## [1] 3 55 68 102 103 104 144 163 166 167 168 169 170 171 172 173 174 175 176
## [20] 182 198 199 225 234 236 237 238 239 241 242 257 258 259 260 263 264 280 281
## [39] 282 283 317 318 321 322 325 327 329 338 339 340 341 342 343 344 345
length(which(car_data_l$`CONSUMPTION COMBINED (L/100 KM)`<=hrf))
## [1] 55
dim(car_data_l)
## [1] 356 14
hrcf<-matrix(rep(NA, 55*14), ncol=14)
hrcf<-car_data_l[which(car_data_l$`CONSUMPTION COMBINED (L/100 KM)`<= hrf),]
which(hrcf$CLASS=="T"| hrcf$CLASS=="I"| hrcf$CLASS=="S"| hrcf$CLASS=="C"| hrcf$CLASS=="M")
## [1] 1 2 4 5 6 7 8 9 10 11 12 13 14 15 16 19 21 22 23 24 25 26 27 28 29
## [26] 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55
length(which(hrcf$CLASS=="T"| hrcf$CLASS=="I"| hrcf$CLASS=="S"| hrcf$CLASS=="C"| hrcf$CLASS=="M"))
## [1] 50
phr<-matrix(rep(NA,50*14),ncol = 14)
phr<-hrcf[which(hrcf$CLASS=="T"| hrcf$CLASS=="I"| hrcf$CLASS=="S"| hrcf$CLASS=="C"| hrcf$CLASS=="M"),]
ehr<-mean(phr$`CO2 EMISSIONS (g/km)`)-sd(phr$`CO2 EMISSIONS (g/km)`)
which(phr$`CO2 EMISSIONS (g/km)`< ehr)
## [1] 6 19 43 44
length(which(phr$`CO2 EMISSIONS (g/km)`< ehr))
## [1] 4
gshrc<-matrix(rep(NA,4*14), ncol = 14)
gshrc<-phr[which(phr$`CO2 EMISSIONS (g/km)`< ehr),]
which(gshrc$`$ PER YEAR`==min(gshrc$`$ PER YEAR`))
## [1] 1
### aplicando criterios de consumo de combustible combinado ( ya que el ir de Rincón de Romos a Aguascalientes implica tomar carretera. pero tambien conducir en ciudad), tamaño del automovil (ya que es soltera y no necesita demasiado espacio) así como criterios ambientales calculando los autos con menor emision de co2 el mejor auto entre estos tomando el mas económico que cumple con los parámetros sería:
gshrc[1,]
## # A tibble: 1 x 14
## No Marca `MAKE MODEL` CLASS `ENGINE SIZE (L)` CYLINDERS TRANSMISSION
## <dbl> <chr> <chr> <chr> <dbl> <dbl> <chr>
## 1 144 DODGE FUSION HYBRID M 2 4 AV
## # ... with 7 more variables: FUEL TYPE <chr>,
## # CONSUMPTION CITY (L/100 KM) <dbl>, CONSUMPTION HIGHWAY (L/100 KM) <dbl>,
## # CONSUMPTION COMBINED (L/100 KM) <dbl>, $ PER YEAR <dbl>,
## # CO2 EMISSIONS (g/km) <dbl>, CO2 RATING <dbl>
## * se utilizó la media menos una vez la desviación estandar para encontrar los autos mas eficientes en terminos de consumo de combustible y emision de CO2 así como el de costo mínimo una vez que se redujo a solo 4 autos
Ejercicio 2
inc_data<-read_excel("C:\\Users\\divis\\Downloads\\datosAct.xlsx", na=c("", "#N/D"))
dim(inc_data)
## [1] 40 7
str(inc_data)
## tibble [40 x 7] (S3: tbl_df/tbl/data.frame)
## $ encuestador: chr [1:40] "arturo" "arturo" "arturo" "arturo" ...
## $ sexo : chr [1:40] "hombre" "hombre" "hombre" "hombre" ...
## $ empleo : chr [1:40] "Enfermeria" "obrero" "mtro" "obrero" ...
## $ ingreso : logi [1:40] NA NA NA NA NA NA ...
## $ edad : num [1:40] 51 33 47 38 46 47 55 40 57 NA ...
## $ altura : num [1:40] 150 156 171 166 192 ...
## $ peso : num [1:40] 64 62 76 67 90 80 75 65 83 68 ...
as.character(inc_data$sexo)
## [1] "hombre" "hombre" "hombre" "hombre" "hombre" "mujer"
## [7] "mujer" "mujer" "hombre" "mujer" "Femenino" "masculino"
## [13] "masculino" "masculino" "mascuino" "masculino" "Femenino" "Femenino"
## [19] "masculino" "Femenino" "Femenino" "Masculino" "Masculino" "Masculino"
## [25] "Masculino" "Femenino" "Femenino" "Femenino" "Femenino" "Femenino"
## [31] "H" "H" "M" "H" "H" "H"
## [37] "M" "M" "M" "H"
est_sexo<-function(x)
{
if(x=="H" | x=="hombre"| x=="mascuino" | x=="masculino")
{
x<-"Masculino"
}
else
{
x<- "Femenino"
}
}
for (i in 1:40) {
inc_data[i,2]<-est_sexo(inc_data[i,2])
}
inc_data$sexo
## [1] "Masculino" "Masculino" "Masculino" "Masculino" "Masculino" "Femenino"
## [7] "Femenino" "Femenino" "Masculino" "Femenino" "Femenino" "Masculino"
## [13] "Masculino" "Masculino" "Masculino" "Masculino" "Femenino" "Femenino"
## [19] "Masculino" "Femenino" "Femenino" "Femenino" "Femenino" "Femenino"
## [25] "Femenino" "Femenino" "Femenino" "Femenino" "Femenino" "Femenino"
## [31] "Masculino" "Masculino" "Femenino" "Masculino" "Masculino" "Masculino"
## [37] "Femenino" "Femenino" "Femenino" "Masculino"
Ejercicio 3
inc_data$empleo
## [1] "Enfermeria" "obrero" "mtro" "obrero" "abogado"
## [6] "mtro" "obrero" "Enfermeria" "politico" "abogado"
## [11] "mtro" "obrero" "mtro" "mtro" "mtro"
## [16] "abogado" "obrero" "abogado" "Enfermeria" "abogado"
## [21] "abogado" "obrero" "obrero" "Enfermeria" "obrero"
## [26] "obrero" "obrero" "obrero" "politico" "abogado"
## [31] "obrero" "mtro" "Enfermeria" "Enfermeria" "Enfermeria"
## [36] "obrero" "obrero" "mtro" "obrero" "obrero"
factor(inc_data$empleo)
## [1] Enfermeria obrero mtro obrero abogado mtro
## [7] obrero Enfermeria politico abogado mtro obrero
## [13] mtro mtro mtro abogado obrero abogado
## [19] Enfermeria abogado abogado obrero obrero Enfermeria
## [25] obrero obrero obrero obrero politico abogado
## [31] obrero mtro Enfermeria Enfermeria Enfermeria obrero
## [37] obrero mtro obrero obrero
## Levels: abogado Enfermeria mtro obrero politico
est_empleo<-function(x)
{
if(x=="abogado")
{
x<-"Lic_derecho"
}
else
{
if(x=="Eduacion" |x== "maestro"| x=="profesor" | x=="mtro")
{
x<-"Educacion"
}
else
{
if(x=="obrero" | x=="oBRERO")
{
x<-"obrero"
}
else
{
if(x=="Enfermeria")
{
x<-"Enfermeria"
}
else
{
x<-"Pres_mpal"
}
}
}
}
}
for (i in 1:40) {
inc_data[i,3]<-est_empleo(inc_data[i,3])
}
inco_est<-data.frame(c("Pres_mpal","Ciencias_bio","Arq y diseño", "Ingienerías",
"Lic_derecho", "Humanidades","Artes","Educacion","Enfermeria", "obrero"),
c(85000, 13812,13549,12283,12500,10365,9768,9540,8500,5941))
tolower(inco_est[,1])
## [1] "pres_mpal" "ciencias_bio" "arq y diseño" "ingienerías"
## [5] "lic_derecho" "humanidades" "artes" "educacion"
## [9] "enfermeria" "obrero"
tolower(inc_data$empleo)
## [1] "enfermeria" "obrero" "educacion" "obrero" "lic_derecho"
## [6] "educacion" "obrero" "enfermeria" "pres_mpal" "lic_derecho"
## [11] "educacion" "obrero" "educacion" "educacion" "educacion"
## [16] "lic_derecho" "obrero" "lic_derecho" "enfermeria" "lic_derecho"
## [21] "lic_derecho" "obrero" "obrero" "enfermeria" "obrero"
## [26] "obrero" "obrero" "obrero" "pres_mpal" "lic_derecho"
## [31] "obrero" "educacion" "enfermeria" "enfermeria" "enfermeria"
## [36] "obrero" "obrero" "educacion" "obrero" "obrero"
colnames(inco_est)<-c("Area", "Ing_prom")
ingreso<-rep(NA, 40)
cbind(inc_data, ingreso)
## encuestador sexo empleo ingreso edad altura peso ingreso
## 1 arturo Masculino Enfermeria NA 51 150.5 64.0 NA
## 2 arturo Masculino obrero NA 33 155.7 62.0 NA
## 3 arturo Masculino Educacion NA 47 170.8 76.0 NA
## 4 arturo Masculino obrero NA 38 166.0 67.0 NA
## 5 arturo Masculino Lic_derecho NA 46 192.5 90.0 NA
## 6 arturo Femenino Educacion NA 47 171.7 80.0 NA
## 7 arturo Femenino obrero NA 55 164.8 75.0 NA
## 8 arturo Femenino Enfermeria NA 40 173.0 65.0 NA
## 9 arturo Masculino Pres_mpal NA 57 179.8 83.0 NA
## 10 arturo Femenino Lic_derecho NA NA 166.3 68.0 NA
## 11 jessica Femenino Educacion NA 56 168.5 62.0 NA
## 12 jessica Masculino obrero NA 47 175.0 79.0 NA
## 13 jessica Masculino Educacion NA 36 155.8 65.0 NA
## 14 jessica Masculino Educacion NA 51 188.0 88.0 NA
## 15 jessica Masculino Educacion NA 41 188.3 74.0 NA
## 16 jessica Masculino Lic_derecho NA 26 160.0 63.0 NA
## 17 jessica Femenino obrero NA 52 179.4 86.0 NA
## 18 jessica Femenino Lic_derecho NA 55 176.4 81.0 NA
## 19 jessica Masculino Enfermeria NA 42 180.2 88.0 NA
## 20 jessica Femenino Lic_derecho NA 40 188.3 95.0 NA
## 21 susy Femenino Lic_derecho NA 52 165.2 68.0 NA
## 22 susy Femenino obrero NA 62 166.0 76.0 NA
## 23 susy Femenino obrero NA 49 166.0 70.0 NA
## 24 susy Femenino Enfermeria NA 49 168.4 63.0 NA
## 25 susy Femenino obrero NA 58 186.3 83.0 NA
## 26 susy Femenino obrero NA 64 176.3 70.0 NA
## 27 susy Femenino obrero NA 49 184.3 75.0 NA
## 28 susy Femenino obrero NA 39 173.6 80.0 NA
## 29 susy Femenino Pres_mpal NA 70 166.0 66.0 NA
## 30 susy Femenino Lic_derecho NA 44 181.3 76.0 NA
## 31 pedro Masculino obrero NA 47 160.4 68.0 NA
## 32 pedro Masculino Educacion NA 40 183.3 76.0 NA
## 33 pedro Femenino Enfermeria NA 34 164.5 NA NA
## 34 pedro Masculino Enfermeria NA 44 178.4 78.0 NA
## 35 pedro Masculino Enfermeria NA 49 191.7 80.0 NA
## 36 pedro Masculino obrero NA 33 168.0 73.0 NA
## 37 pedro Femenino obrero NA 45 155.9 54.3 NA
## 38 pedro Femenino Educacion NA 49 188.0 NA NA
## 39 pedro Femenino obrero NA 46 186.0 88.0 NA
## 40 pedro Masculino obrero NA 80 178.6 83.0 NA
minc<-merge(inc_data, inco_est, by.x = "empleo", by.y = "Area")
minc[1,3]=="Femenino"
## [1] FALSE
for (i in 1:40){
if (minc[i,3]=="Femenino"& minc[i,1]=="obrero"){
minc$Ing_prom[i]<-minc$Ing_prom[i]*.9
}
else {
minc$Ing_prom[i]<-minc$Ing_prom[i]
}
}
minc
## empleo encuestador sexo ingreso edad altura peso Ing_prom
## 1 Educacion arturo Masculino NA 47 170.8 76.0 9540.0
## 2 Educacion jessica Masculino NA 41 188.3 74.0 9540.0
## 3 Educacion pedro Femenino NA 49 188.0 NA 9540.0
## 4 Educacion arturo Femenino NA 47 171.7 80.0 9540.0
## 5 Educacion pedro Masculino NA 40 183.3 76.0 9540.0
## 6 Educacion jessica Femenino NA 56 168.5 62.0 9540.0
## 7 Educacion jessica Masculino NA 36 155.8 65.0 9540.0
## 8 Educacion jessica Masculino NA 51 188.0 88.0 9540.0
## 9 Enfermeria arturo Masculino NA 51 150.5 64.0 8500.0
## 10 Enfermeria jessica Masculino NA 42 180.2 88.0 8500.0
## 11 Enfermeria pedro Femenino NA 34 164.5 NA 8500.0
## 12 Enfermeria arturo Femenino NA 40 173.0 65.0 8500.0
## 13 Enfermeria pedro Masculino NA 49 191.7 80.0 8500.0
## 14 Enfermeria susy Femenino NA 49 168.4 63.0 8500.0
## 15 Enfermeria pedro Masculino NA 44 178.4 78.0 8500.0
## 16 Lic_derecho arturo Masculino NA 46 192.5 90.0 12500.0
## 17 Lic_derecho jessica Femenino NA 40 188.3 95.0 12500.0
## 18 Lic_derecho susy Femenino NA 44 181.3 76.0 12500.0
## 19 Lic_derecho jessica Femenino NA 55 176.4 81.0 12500.0
## 20 Lic_derecho jessica Masculino NA 26 160.0 63.0 12500.0
## 21 Lic_derecho susy Femenino NA 52 165.2 68.0 12500.0
## 22 Lic_derecho arturo Femenino NA NA 166.3 68.0 12500.0
## 23 obrero arturo Masculino NA 33 155.7 62.0 5941.0
## 24 obrero arturo Masculino NA 38 166.0 67.0 5941.0
## 25 obrero susy Femenino NA 49 166.0 70.0 5346.9
## 26 obrero susy Femenino NA 39 173.6 80.0 5346.9
## 27 obrero jessica Masculino NA 47 175.0 79.0 5941.0
## 28 obrero pedro Masculino NA 47 160.4 68.0 5941.0
## 29 obrero susy Femenino NA 49 184.3 75.0 5346.9
## 30 obrero pedro Masculino NA 33 168.0 73.0 5941.0
## 31 obrero arturo Femenino NA 55 164.8 75.0 5346.9
## 32 obrero susy Femenino NA 64 176.3 70.0 5346.9
## 33 obrero susy Femenino NA 62 166.0 76.0 5346.9
## 34 obrero pedro Masculino NA 80 178.6 83.0 5941.0
## 35 obrero pedro Femenino NA 45 155.9 54.3 5346.9
## 36 obrero jessica Femenino NA 52 179.4 86.0 5346.9
## 37 obrero pedro Femenino NA 46 186.0 88.0 5346.9
## 38 obrero susy Femenino NA 58 186.3 83.0 5346.9
## 39 Pres_mpal susy Femenino NA 70 166.0 66.0 85000.0
## 40 Pres_mpal arturo Masculino NA 57 179.8 83.0 85000.0
## * El salario mensual del obrero es un estimado de https://mx.indeed.com/career/obrero/salaries
Ejercicio 4
modelo<-lm(inc_data$peso~inc_data$altura, inc_data, na.action = na.exclude)
modelo
##
## Call:
## lm(formula = inc_data$peso ~ inc_data$altura, data = inc_data,
## na.action = na.exclude)
##
## Coefficients:
## (Intercept) inc_data$altura
## -44.6933 0.6888
estimate<-function(x){
-44.6933+(0.6888*x)
}
for (i in 1:40){
if (is.na(inc_data$peso[i])){
inc_data$peso[i]<-estimate(inc_data$altura[i])
}
}
inc_data$peso
## [1] 64.0000 62.0000 76.0000 67.0000 90.0000 80.0000 75.0000 65.0000 83.0000
## [10] 68.0000 62.0000 79.0000 65.0000 88.0000 74.0000 63.0000 86.0000 81.0000
## [19] 88.0000 95.0000 68.0000 76.0000 70.0000 63.0000 83.0000 70.0000 75.0000
## [28] 80.0000 66.0000 76.0000 68.0000 76.0000 68.6143 78.0000 80.0000 73.0000
## [37] 54.3000 84.8011 88.0000 83.0000
Ejercicio 5
n<-seq(1:5)
x<-seq(0:6)
prob<-.5
y<-x+1
pbinom(x,n,prob)
## [1] 1 1 1 1 1 1 1
pbinom(y,n,prob)
## [1] 1 1 1 1 1 1 1