# Reproducir el ejemplo de la clase
options(scipen = 99999)
library(deaR)
PFT1981<-deaR::PFT1981
PFT <- PFT1981[1:49,] 
PFT <- make_deadata(PFT, 
                    inputs = 2:6, 
                    outputs = 7:9 )
modelo_dea <- model_basic(PFT, 
                        orientation = "io", 
                        rts = "crs")
eff <- efficiencies(modelo_dea)
resultados<-data.frame(round(eff,2)*100,round(1-eff,2)*100)
names(resultados)<-c("E","1-E")
resultados
##          E 1-E
## Site1  100   0
## Site2   90  10
## Site3   99   1
## Site4   90  10
## Site5  100   0
## Site6   91   9
## Site7   89  11
## Site8   91   9
## Site9   87  13
## Site10 100   0
## Site11  98   2
## Site12  97   3
## Site13  86  14
## Site14  98   2
## Site15 100   0
## Site16  95   5
## Site17 100   0
## Site18 100   0
## Site19  95   5
## Site20 100   0
## Site21 100   0
## Site22 100   0
## Site23  96   4
## Site24 100   0
## Site25  98   2
## Site26  94   6
## Site27 100   0
## Site28  94   6
## Site29  84  16
## Site30  90  10
## Site31  84  16
## Site32  91   9
## Site33  94   6
## Site34  85  15
## Site35 100   0
## Site36  80  20
## Site37  86  14
## Site38  97   3
## Site39  94   6
## Site40 100   0
## Site41  95   5
## Site42  95   5
## Site43  87  13
## Site44 100   0
## Site45  89  11
## Site46  91   9
## Site47 100   0
## Site48 100   0
## Site49 100   0
# Ordenar los resultados de los más eficientes a los menos eficientes
resultados_ordenados <- resultados[order(-resultados$E), ]
print(resultados_ordenados)
##          E 1-E
## Site1  100   0
## Site5  100   0
## Site10 100   0
## Site15 100   0
## Site17 100   0
## Site18 100   0
## Site20 100   0
## Site21 100   0
## Site22 100   0
## Site24 100   0
## Site27 100   0
## Site35 100   0
## Site40 100   0
## Site44 100   0
## Site47 100   0
## Site48 100   0
## Site49 100   0
## Site3   99   1
## Site11  98   2
## Site14  98   2
## Site25  98   2
## Site12  97   3
## Site38  97   3
## Site23  96   4
## Site16  95   5
## Site19  95   5
## Site41  95   5
## Site42  95   5
## Site26  94   6
## Site28  94   6
## Site33  94   6
## Site39  94   6
## Site6   91   9
## Site8   91   9
## Site32  91   9
## Site46  91   9
## Site2   90  10
## Site4   90  10
## Site30  90  10
## Site7   89  11
## Site45  89  11
## Site9   87  13
## Site43  87  13
## Site13  86  14
## Site37  86  14
## Site34  85  15
## Site29  84  16
## Site31  84  16
## Site36  80  20
# Oportunidad de mejora promedio para las unidades ineficientes
oport_mejora_media <- mean(resultados_ordenados$`1-E`[resultados_ordenados$E < 100 & resultados_ordenados$E > 0])
print(oport_mejora_media) 
## [1] 8.4375