The dropdown button doesnt work in plotly pie chart

hi,

I have the following data

structure(list(ID = c(506807L, 210838L, 219172L, 563731L, 636587L, 
578856L, 198395L, 574806L, 572448L, 568220L, 567265L, 195484L, 
211524L, 633316L, 643822L, 629544L, 197055L, 390720L, 577131L, 
633551L), TipoIdentificacion = c("CC", "CC", "PE", "CC", "CC", 
"CC", "CC", "CC", "PT", "CC", "CC", "CC", "CC", "CC", "CC", "CC", 
"CC", "CC", "CC", "CC"), NroIdentificacion = c("23180859", "1133599536", 
"830381211061997", "1093775402", "1004345405", "1006580887", 
"1098753700", "1100081425", "6770726", "1101752069", "1007768293", 
"1006856462", "1020713966", "1095838132", "1067947450", "1110581438", 
"1090511340", "1080160701", "1192797783", "1098770951"), FechaTecnologiaSalud = c("2023-03-21", 
"2023-02-13", "2023-03-16", "2023-03-21", "2023-03-10", "2023-03-17", 
"2023-03-08", "2023-03-16", "2023-03-22", "2023-03-15", "2023-03-15", 
"2023-03-08", "2023-03-15", "2023-03-03", "2023-03-23", "2023-02-13", 
"2023-03-10", "2023-03-10", "2023-02-23", "2023-03-02"), CodigoCUPSTecnologiaSalud = c("890201", 
"890301", "890350", "890205", "890205", "890350", "890301", "890201", 
"890350", "890301", "890301", "890301", "890305", "890301", "890350", 
"890205", "890201", "890301", "890250", "890301"), FinalidadTecnologiaSalud = c(6L, 
6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 
6L, 6L, 6L), ClasificacionRiesgoGestacional = c(4L, 5L, 21L, 
4L, 5L, 4L, 5L, 4L, 4L, 5L, 4L, 5L, 21L, 5L, 4L, 5L, 4L, 4L, 
4L, 4L), ClasificacionRiesgoPreeclampsia = c(5L, 21L, 5L, 5L, 
5L, 5L, 21L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 21L, 
5L), SuministroAcidoAcetilsalicilico = c(0L, 21L, 0L, 1L, 0L, 
0L, 0L, 1L, 1L, 1L, 1L, 0L, 1L, 0L, 21L, 1L, 0L, 0L, 21L, 0L), 
    SuministroAcidoFolicoControlPrenatal = c(1L, 1L, 1L, 1L, 
    1L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 0L, 0L, 1L, 1L, 1L, 
    1L), SuministroSulfatoFerrosoControlPrenatal = c(1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 0L, 0L, 1L, 
    1L, 1L, 1L), SuministroCalcioControlPrenatal = c(0L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 0L, 0L, 1L, 
    0L, 1L, 1L), FechaSuministroAnticonceptivoPostEventoObstetrico = c("1845-01-01", 
    "1845-01-01", "1845-01-01", "1845-01-01", "1845-01-01", "1845-01-01", 
    "1845-01-01", "1845-01-01", "1845-01-01", "1845-01-01", "1845-01-01", 
    "1845-01-01", "1845-01-01", "1845-01-01", "1845-01-01", "1845-01-01", 
    "1845-01-01", "1845-01-01", "1845-01-01", "1845-01-01"), 
    SuministroAnticonceptivoPostEventoObstetrico = c(0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L), FechaSalidaPartoCesarea = c("1845-01-01", "1845-01-01", 
    "1845-01-01", "1845-01-01", "1845-01-01", "1845-01-01", "1845-01-01", 
    "1845-01-01", "1845-01-01", "1845-01-01", "1845-01-01", "1845-01-01", 
    "1845-01-01", "1845-01-01", "1845-01-01", "1845-01-01", "1845-01-01", 
    "1845-01-01", "1845-01-01", "1845-01-01"), CodEntidadReportadora = c("ESS207", 
    "EPSI01", "EPS002", "ESS024", "EPSS02", "CCF055", "ESS024", 
    "ESS024", "ESS024", "ESS024", "ESS024", "CCF055", "EPS002", 
    "EPSS02", "EPSS02", "EPS002", "ESS024", "ESS118", "EPSI01", 
    "EPSS02"), FuenteTipoIdReportador = c("NI", "NI", "NI", "NI", 
    "NI", "NI", "NI", "NI", "NI", "NI", "NI", "NI", "NI", "NI", 
    "NI", "NI", "NI", "NI", "NI", "NI"), FuenteNroIdReportador = c(806008394L, 
    824001398L, 800130907L, 900226715L, 800130907L, 901543211L, 
    900226715L, 900226715L, 900226715L, 900226715L, 900226715L, 
    901543211L, 800130907L, 800130907L, 800130907L, 800130907L, 
    900226715L, 901021565L, 824001398L, 800130907L), FuenteNombreEntidadKReporta = structure(c(6L, 
    15L, 25L, 12L, 25L, 7L, 12L, 12L, 12L, 12L, 12L, 7L, 25L, 
    25L, 25L, 25L, 12L, 17L, 15L, 25L), levels = c("AIC EPSI -ASOCIACION INDIGENA DEL CAUCA", 
    "ALCALDIA DISTRITAL DE BARRANQUILLA", "ALIANSALUD EPS", "ANAS WAYUU EPSI", 
    "ASMET SALUD EPS SAS", "ASOCIACION MUTUAL SER EPS-S", "CAJACOPI EPS S.A.S", 
    "CAPITAL SALUD EPS-S S.A.S.", "COMFAORIENTE - CAJA DE COMPENSACION FAMILIAR DEL ORIENTE COLOMBIANO", 
    "COMFENALCO VALLE EPS", "COMPENSAR", "COOSALUD EPS S.A", 
    "DTS ALCALDIA DE SANTIAGO DE CALI", "DTS SECRETARIA DE SALUD DEPARTAMENTAL DEL VALLE", 
    "DUSAKAWI EPSI", "ECOOPSOS - EPS S.A.S", "EMSSANAR SAS", 
    "EPS FAMILIAR DE COLOMBIA S.A.S.", "EPS FAMISANAR LTDA", 
    "Fondo Pasivo Social Ferrocarriles Nacionales de Colombia", 
    "INSTITUTO DEPARTAMENTAL DE SALUD DE NARIÑO", "Nueva EPS", 
    "PIJAOS SALUD EPS -I", "SALUD BOLIVAR EPS SAS", "SALUD TOTAL - ENTIDAD PROMOTORA DE SALUD DEL REGIMEN CONTRIBUTIVO", 
    "SAVIA SALUD -ALIANZA MEDELLIN ANTIOQUIA EPS SAS", "SERVICIO OCCIDENTAL DE SALUD SA SOS"
    ), class = "factor"), FuenteFechaCargue = c("2023-03-28 16:09:54.703", 
    "2023-03-21 18:01:12.723", "2023-03-21 18:11:15.877", "2023-03-28 17:00:10.460", 
    "2023-03-28 18:30:30.367", "2023-03-28 17:40:16.157", "2023-03-21 17:30:50.077", 
    "2023-03-28 17:00:10.460", "2023-03-28 17:00:10.460", "2023-03-28 17:00:10.460", 
    "2023-03-28 17:00:10.460", "2023-03-21 17:20:42.907", "2023-03-21 18:11:15.877", 
    "2023-03-28 18:30:30.367", "2023-03-28 18:30:30.367", "2023-03-28 18:30:20.617", 
    "2023-03-21 17:30:50.077", "2023-03-28 14:19:21.390", "2023-03-28 17:30:15.403", 
    "2023-03-28 18:30:30.367"), FuenteFechaCorte = c("2023-03-20", 
    "2023-03-13", "2023-03-13", "2023-03-20", "2023-03-20", "2023-03-20", 
    "2023-03-13", "2023-03-20", "2023-03-20", "2023-03-20", "2023-03-20", 
    "2023-03-13", "2023-03-13", "2023-03-20", "2023-03-20", "2023-03-20", 
    "2023-03-13", "2023-03-20", "2023-03-20", "2023-03-20"), 
    FuenteNombreArchivo = c("SGD126GEST20230320NI000806008394ESS207", 
    "SGD126GEST20230313NI000824001398EPSI01", "SGD126GEST20230313NI000800130907EPS002", 
    "SGD126GEST20230320NI000900226715ESS024", "SGD126GEST20230320NI000800130907EPSS02", 
    "SGD126GEST20230320NI000901543211CCF055", "SGD126GEST20230313NI000900226715ESS024", 
    "SGD126GEST20230320NI000900226715ESS024", "SGD126GEST20230320NI000900226715ESS024", 
    "SGD126GEST20230320NI000900226715ESS024", "SGD126GEST20230320NI000900226715ESS024", 
    "SGD126GEST20230313NI000901543211CCF055", "SGD126GEST20230313NI000800130907EPS002", 
    "SGD126GEST20230320NI000800130907EPSS02", "SGD126GEST20230320NI000800130907EPSS02", 
    "SGD126GEST20230320NI000800130907EPS002", "SGD126GEST20230313NI000900226715ESS024", 
    "SGD126GEST20230320NI000901021565ESS118", "SGD126GEST20230320NI000824001398EPSI01", 
    "SGD126GEST20230320NI000800130907EPSS02"), FuenteGUIDArchivo = c("1891A8F6-C141-4FC1-8D27-26958E9C315F", 
    "E8AEA947-4C3F-415F-B68D-B52F26A36BCE", "F6BA2BA1-FD38-40D3-8492-EBFAE246918F", 
    "B7CBF961-389E-4E51-903B-C167B790631A", "973407E7-20EA-4960-9B77-B764022384E5", 
    "C569CB7B-4D32-4BB5-8835-63AF1CF8766B", "AAEADB88-EFFD-49ED-96BC-BD324DA482EF", 
    "B7CBF961-389E-4E51-903B-C167B790631A", "B7CBF961-389E-4E51-903B-C167B790631A", 
    "B7CBF961-389E-4E51-903B-C167B790631A", "B7CBF961-389E-4E51-903B-C167B790631A", 
    "6373170C-EE7C-49EA-B813-944B95B37E24", "F6BA2BA1-FD38-40D3-8492-EBFAE246918F", 
    "973407E7-20EA-4960-9B77-B764022384E5", "973407E7-20EA-4960-9B77-B764022384E5", 
    "CBCEEA89-571B-4BCC-9A5D-5BBC0495FFCC", "AAEADB88-EFFD-49ED-96BC-BD324DA482EF", 
    "1B8FC201-C49B-4253-B2D6-0F5864F53C72", "53A03BB0-9804-4C59-989C-DBAB782CE2BD", 
    "973407E7-20EA-4960-9B77-B764022384E5"), FuenteConsecutivoReg = c(42890L, 
    1145L, 17645L, 16394L, 8999L, 15900L, 7375L, 6239L, 14154L, 
    12364L, 8877L, 3152L, 10096L, 16725L, 14788L, 51809L, 6817L, 
    8423L, 1704L, 16960L)), row.names = c(1321336L, 192388L, 
180594L, 1437573L, 1271836L, 1607919L, 219581L, 1427418L, 1435333L, 
1433543L, 1430056L, 312304L, 173045L, 1279562L, 1277625L, 1258371L, 
219023L, 1593247L, 1329608L, 1279797L), class = "data.frame")

so i have the following code to make a pie chart with a dropdown menu that select a factor variables into dataframe. to show th selected metric in this code.

plots <- lapply(c("Total",unique((mujcpnoport$FuenteNombreEntidadKReporta))),function(g) {
  if(g=="Total"){
    df_subset=mujcpnoport
    title= "Total País"
  } else{
    df_subset <- mujcpnoport %>% filter(!is.na(FuenteNombreEntidadKReporta) & FuenteNombreEntidadKReporta ==g)
    title=g}
  plot_ly(df_subset, labels = ~ClasificacionRiesgoGestacional, values = as.data.frame(table(df_subset$ClasificacionRiesgoGestacional)), type = "pie")
  #layout(title=title)
})

# create a grid of plots with dropdown menu
subplot(plots,nrows=9, titleX = TRUE, titleY = TRUE) %>%
  layout(
    updatemenus = list(
      list(
        active = 1,
        buttons = lapply(c("Total",unique(as.character(mujcpnoport$FuenteNombreEntidadKReporta))),function(g) {
          list(
            label = g,
            method = "update",
            args = list(list(visible = !is.na(mujcpnoport$FuenteNombreEntidadKReporta) & ifelse(g=="Total",TRUE,mujcpnoport$FuenteNombreEntidadKReporta == as.character(g))), list(title = g))
        )
      }))))

so, the problem is that the output does not update the graph when i pic an potion in the menu.