##Portal de compras del IMSS ## http://compras.imss.gob.mx/?P=imsscompro.
When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
#GASTOS DE ATENCION POR MEDICAMENTOS DE ALTO COSTO, PRIMER MES DE 2023 EN EL IMSS HGR 220##
## llamar el archivo ##
# Load required packages:
library(readxl)
library(ggplot2)
#---- GETTING THE DATA FROM A LOCAL DATABASE ----
# Cargaremos un archivo de la base de datos del comite de farmacia de enero de 2023 #
# Claves de medicamentos y costos INFORME_COLECTIVAS _ENERO _2023.xlsx (Archivo base de datos comite de farmacia IMSS HGR 220)
COLECTIVAS_ENERO_2023<- read_excel("INFORME_COLECTIVAS _ENERO _2023.xlsx", range = "A1:U9968",
col_types = c("text","numeric", "text", "numeric", "text", "text", "numeric","numeric","numeric","numeric","numeric","text","numeric","numeric","numeric","numeric","numeric","text","text","numeric","text"))
##Aquí hacemos un analisis del dataset de enero de costos por medicamentos del mes de enero de 2023##
#---- EXPLORING AND TIDYING THE DATA ----
# Analyse the structure with class and str command, fix the data types if needed:
class(COLECTIVAS_ENERO_2023)
str(COLECTIVAS_ENERO_2023)
names(COLECTIVAS_ENERO_2023) <- c("NO.DOCUMENTO", "SERVICIO", "FECHA", "USUARIO", "ESPECIALIDAD", "AREA", "GPO","GEN","ESP","DIF","VAR","DESCRIPCION","SOLICITADA","SURTIDA","NEGADA","PRE_UNIT","IMPORTE","TIPO MEDICAMENTO","ESTATUS CLAVE","MEDICAMENTO ALTO COSTO","COSTO MEDICAMENTO")
COLECTIVAS_ENERO_2023$SERVICIO <- as.integer(COLECTIVAS_ENERO_2023$SERVICIO)
COLECTIVAS_ENERO_2023$ESPECIALLIDAD <- as.factor(COLECTIVAS_ENERO_2023$ESPECIALIDAD)
View(COLECTIVAS_ENERO_2023)
## vamos a escudriñar el archivo ##
attach(COLECTIVAS_ENERO_2023)
names(COLECTIVAS_ENERO_2023)
COLECTIVAS_ENERO_2023$`AREA`
ESPECIALIDAD[1:200]
str(COLECTIVAS_ENERO_2023)
ncol(COLECTIVAS_ENERO_2023)
nrow(COLECTIVAS_ENERO_2023)
colnames(COLECTIVAS_ENERO_2023)
head(COLECTIVAS_ENERO_2023)
tail(COLECTIVAS_ENERO_2023)
dim(COLECTIVAS_ENERO_2023)
levels(COLECTIVAS_ENERO_2023$SURTIDA)
length(COLECTIVAS_ENERO_2023)
table(COLECTIVAS_ENERO_2023)
### Crear un nuevo dataset con las nuevas columnas procesadas ####
COLECTIVAS_NEW_2023 <- data.frame(USUARIO = COLECTIVAS_ENERO_2023$USUARIO,
AREA = COLECTIVAS_ENERO_2023$AREA,
DESCRIPCION = COLECTIVAS_ENERO_2023$DESCRIPCION,
SOLICITADA = COLECTIVAS_ENERO_2023$SOLICITADA,
SURTIDA = COLECTIVAS_ENERO_2023$SURTIDA,
PRE_UNIT=COLECTIVAS_ENERO_2023$PRE_UNIT,
IMPORTE = COLECTIVAS_ENERO_2023$IMPORTE,
`COSTO MEDICAMENTO`=COLECTIVAS_ENERO_2023$`COSTO MEDICAMENTO`)
#### Sí se pudo!!!! ####
##Vista del nuevo dataset COLECTIVAS_NEW_2023##
View(COLECTIVAS_NEW_2023)
# Verificar el nuevo conjunto de datos
head(COLECTIVAS_NEW_2023)
#### Estadística descriptiva ####
## Número de medicamentos por AREA ##
table(COLECTIVAS_NEW_2023$AREA)
##extraer solo medicamentos de alto costo haciendo un subset en la columna de COSTO.MEDICAMENTO ##
ALTOCOSTO <- subset(COLECTIVAS_NEW_2023, COSTO.MEDICAMENTO == "ALTO COSTO")
ALTOCOSTO
nrow(ALTOCOSTO)
View(ALTOCOSTO)
### Resumen estadístico simple de dataframe ALTOCOSTO, media, mediana, etc ###
mean(ALTOCOSTO$IMPORTE)
median(ALTOCOSTO$IMPORTE)
range(ALTOCOSTO$IMPORTE)
sd(ALTOCOSTO$IMPORTE)
##Resumen estadístico de COLECTIVAS_NEW_2023##
mean(COLECTIVAS_NEW_2023$IMPORTE)
median(COLECTIVAS_NEW_2023$IMPORTE)
range(COLECTIVAS_NEW_2023$IMPORTE)
sd(COLECTIVAS_NEW_2023$IMPORTE)
### Hasta aquí logramos reducir el dataframe a solo 8 columnas de nuestro interes ###
### método resumido para obtener datos estadísticos ###
summary(ALTOCOSTO$IMPORTE)
### Guardar los nombres de las AREAS de ALTOCOSTO ###
AREAS <-ALTOCOSTO$AREA
DESCRIPCION <-ALTOCOSTO$DESCRIPCION
AREAS <-COLECTIVAS_NEW_2023$AREA
### la primer AREA y las primeras 300 del ranking ####
AREAS [1]
AREAS [1:300]
### la primer DESCRIPCION y las primeras 100 del ranking ####
DESCRIPCION[1]
DESCRIPCION[1:100]
## las primeras 100 AREAS y la solicitud de medicamentos ORDINARIOS o de ALTO COSTO son ##
ALTOCOSTO[1:100, c("DESCRIPCION","COSTO.MEDICAMENTO")]
ALTOCOSTO[1:100, c("DESCRIPCION","IMPORTE")]
COLECTIVAS_NEW_2023[1:100, c("AREA","COSTO.MEDICAMENTO")]
ALTOCOSTO[1:100, c("AREA","COSTO.MEDICAMENTO")]
### Ordenar ###
## ordenar por AREA, manteniendo solo, DESCRIPCION, SURTIDA, IMPORTE y COSTO.MEDICAMENTO ##
orderByAREA <-ALTOCOSTO[order(ALTOCOSTO$AREA), c("AREA","DESCRIPCION","SURTIDA","IMPORTE","COSTO.MEDICAMENTO")]
# Seleccionar las primeras 300 filas del conjunto de datos orderByAREA
first300byAREA <- orderByAREA[1:300, ]
#Seleccionar unas 1000 filas por la cantidad grande de medicamentos #
first1000byAREA <- orderByAREA[1:1000, ]
# Asignar la columna como factor
first1000byAREA$AREA <- factor(first1000byAREA$AREA,
levels = unique(first1000byAREA$AREA))
# Eliminar duplicados en la columna AREA
# Identificar y eliminar duplicados en la columna AREA
duplicados <- duplicated(first1000byAREA$AREA)
first1000byAREA$AREA <- first1000byAREA$AREA[!duplicados]
### graficarlo con ggplot 2,con histograma vertical en color azul, primeras 300 áreas por medicamentos de alto costo###
ggplot(first300byAREA, aes(x=AREA, y=IMPORTE))+
geom_bar(stat="identity",width=.5,fill="darkblue")+
labs(title = "Primeras 300 AREAS por IMPORTE MEDICAMENTO DE ALTO COSTO")+
labs(subtitle = "Chart by David Ferreira Benítez, MCAA")
coord_flip()
# Como el dataframe es muy grande, necesitamos incluir mas datos y graficarlos en formato horizontal para ser mas legible #
### otra grafica con datos mas amplios con costos por serviciosen formato horizontal, color naranja ###
ggplot(first1000byAREA, aes(x=AREA, y=IMPORTE))+
geom_bar(stat="identity",width=.5,fill="orange")+
labs(title = "Primeras 1000 AREAS por AREA E IMPORTE MEDICAMENTO DE ALTO COSTO")+
labs(subtitle = "Chart by David Ferreira Benítez, MCAA")+
coord_flip()
## seleccionar AREAS con IMPORTE de más de 25000 PESOS##
IMPORTE<-ALTOCOSTO[ALTOCOSTO$IMPORTE>25000, c("AREA","IMPORTE")]
orderIMPORTE <-IMPORTE[order(-IMPORTE$IMPORTE), ]
head(orderIMPORTE,500)
View(IMPORTE)
warnings(IMPORTE)
### Aquí se termina el análisis de gastos en medicamentos de alto costo, por especialidad o areas hospitalarias en el primer mes del año 2023 en el HGR 220 del IMSS en Toluca Estado de Mexico ###
## GRACIAS ##