THE WUR 2026

Universidade Federal de Pernambuco

Diretoria de Avaliação Institucional

Relatório de Indicadores Institucionais

1 Graduação

Os dados utilizados nesta etapa foram extraídos da base institucional correspondente ao Censo da Educação Superior de 2024, contendo registros individuais de estudantes de graduação da Universidade Federal de Pernambuco (UFPE).

O conjunto de dados inclui informações como identificação do estudante, curso de vínculo, sexo e turno de funcionamento do curso. Essas variáveis permitem a realização de análises agregadas necessárias para a produção de indicadores institucionais utilizados no THE World University Rankings (THE WUR).

Para permitir a agregação dos dados de graduação nas áreas temáticas utilizadas pelo Times Higher Education, foi utilizada uma tabela auxiliar que relaciona cada curso de graduação da instituição à respectiva área temática THE.

Essa tabela foi importada a partir de um arquivo Excel contendo a correspondência entre o código do curso e a área temática de classificação. Posteriormente, essa tabela foi utilizada para associar cada registro de estudante à sua respectiva área por meio de uma operação de junção (join) baseada no código do curso.

Para padronizar a contagem de estudantes entre cursos com diferentes regimes de oferta, foi adotado o conceito de Estudante em Tempo Integral Equivalente (ETI). Nesse procedimento, estudantes matriculados em cursos de turno integral recebem peso 1 na contagem total. Já estudantes vinculados a cursos em outros turnos recebem peso 0,5, representando uma carga acadêmica proporcionalmente menor.

Essa abordagem permite produzir estimativas mais comparáveis da dimensão do corpo discente entre diferentes áreas de conhecimento.

1.1 Por área e sexo

Após a classificação dos cursos nas áreas temáticas, os registros foram filtrados para considerar apenas estudantes com situação de vínculo correspondente a:

  • Cursando
  • Transferência interna
  • Formado

Em seguida, foram selecionadas as variáveis necessárias para análise e removidos possíveis registros duplicados.

Com base nesses dados, foi realizada a agregação do número de estudantes equivalentes (ETI) por:

  • área temática THE
  • sexo

Os valores foram então reorganizados em formato tabular, de modo que cada linha represente uma área temática e cada coluna represente a distribuição de estudantes por sexo.

Por fim, os resultados foram apresentados em uma tabela interativa, permitindo visualização clara dos totais por área e dos totais gerais.

library(readxl)
library(readr)
library(dplyr)
library(tidyr)
library(reactable)
library(magrittr)

#setwd("H:/Meu Drive/workspace/THE_WUR_2026/")
#setwd("G:/Meu Drive/workspace/THE_WUR_2026/")

# graduacao ---------------------------------------------------------------


# Abrindo dados do censo 2024:

censo_2024 <- read_delim("../dados/censo_2024.csv", 
                         delim = ";", escape_double = FALSE, 
                         locale = locale(encoding = "ISO-8859-1"), 
                         trim_ws = TRUE)


# Abrindo relacao de cursos com area THE (graduacao)

curso_por_area <- read_excel("../tabelas_auxiliares/Curso por área.xlsx", 
                             sheet = "Área_graduação")


# total de alunos por AREA e sexo:
  
censo_2024 %>% filter(SITUACAO_VINCULO %in% c("Cursando", 
                                              "Transferência interna", 
                                              "Formado")) %>% 
  select(NU_CPF, NOME_CURSO, CODIGO_CURSO, SEXO, TURNO) %>%
  distinct() %>%
  mutate(ALUNO_EQUIVALENTE = ifelse(TURNO=="Integral", 1, 0.5)) %>% 
  left_join(curso_por_area %>% select(Código, `ÁREA TSH`), by=c("CODIGO_CURSO"="Código")) %>% 
  group_by(`ÁREA TSH`, SEXO) %>% 
  #group_by(`ÁREA TSH`) %>% 
  summarise(total = sum(ALUNO_EQUIVALENTE)) %>% 
  pivot_wider(names_from = SEXO, values_from = total, values_fill = 0) %>% 
  janitor::adorn_totals(where = c("row", "col")) -> alunos_grad_area_sexo


# 1. Separar os dados (Removendo a linha de total que já vem no seu dataframe)
df_limpo <- alunos_grad_area_sexo %>% filter(`ÁREA TSH` != "Total")

# 2. Criar a tabela com footer calculado dinamicamente
reactable(
  df_limpo,
  striped = TRUE,          # Linhas alternadas coloridas
  highlight = TRUE,        # Destaca a linha sob o mouse
  bordered = TRUE,         # Adiciona bordas
  resizable = TRUE,        # Permite ajustar largura das colunas
  defaultPageSize = 11,    # Mostra todas as áreas de uma vez
  columns = list(
    `ÁREA TSH` = colDef(
      name = "Área de Atuação",
      footer = "Total Geral",
      style = list(fontWeight = "bold")
    ),
    Feminino = colDef(
      name = "Feminino (ETI)",
      footer = function(values) sprintf("%.1f", sum(values)),
      format = colFormat(separators = TRUE, locales = "pt-BR")
    ),
    Masculino = colDef(
      name = "Masculino (ETI)",
      footer = function(values) sprintf("%.1f", sum(values)),
      format = colFormat(separators = TRUE, locales = "pt-BR")
    ),
    Total = colDef(
      name = "Total (ETI)",
      footer = function(values) sprintf("%.1f", sum(values)),
      style = list(background = "#f7f7f7", fontWeight = "bold"),
      format = colFormat(separators = TRUE, locales = "pt-BR")
    )
  ),
  defaultColDef = colDef(
    footerStyle = list(fontWeight = "bold", background = "#eee")
  )
)

1.2 Estudantes Internacionais

Com o objetivo de identificar a distribuição de estudantes internacionais de graduação por área temática, foi realizado um processamento específico a partir da base do Censo da Educação Superior de 2024.

Inicialmente, os dados foram filtrados para selecionar apenas os registros de estudantes cuja nacionalidade é diferente da brasileira. Esse procedimento foi realizado a partir da variável COD_NACIONALIDADE, considerando que o valor 1 corresponde à nacionalidade brasileira. Dessa forma, todos os registros com código distinto de 1 foram classificados como estudantes internacionais.

Em seguida, foram selecionadas as variáveis necessárias para a análise:

  • CPF do estudante (NU_CPF)
  • nome do curso (NOME_CURSO)
  • código do curso (CODIGO_CURSO)
  • sexo (SEXO)
  • turno (TURNO)

A função distinct() foi utilizada para remover possíveis duplicidades de registros, garantindo que cada estudante seja contabilizado apenas uma vez no conjunto de dados.

Na sequência, foi calculada a variável ALUNO_EQUIVALENTE, utilizada para representar o número de estudantes em tempo integral equivalente (ETI). Nesse procedimento, estudantes matriculados em cursos de turno integral recebem peso 1, enquanto estudantes de cursos em outros turnos recebem peso 0,5.

Posteriormente, os dados foram vinculados à tabela auxiliar que associa cada curso à sua respectiva área temática utilizada pelo Times Higher Education (THE). Essa associação foi realizada por meio de uma operação de junção (left_join) baseada no código do curso.

Após a classificação por área temática, os dados foram agregados utilizando a função group_by() considerando a variável ÁREA TSH, e foi calculada a soma dos valores de estudantes equivalentes em cada área.

O resultado desse processamento é um conjunto de dados que apresenta o total de estudantes internacionais de graduação (em ETI) por área temática.

# estudantes internacionais por area THE
censo_2024 %>% 
  filter(#SITUACAO_VINCULO %in% c("Cursando"), 
         COD_NACIONALIDADE != 1) %>% 
  select(NU_CPF, NOME_CURSO, CODIGO_CURSO, SEXO, TURNO) %>%
  distinct() %>% 
  mutate(ALUNO_EQUIVALENTE = ifelse(TURNO=="Integral", 1, 0.5)) %>% 
  left_join(curso_por_area %>% select(Código, `ÁREA TSH`), by=c("CODIGO_CURSO"="Código")) %>% 
  group_by(`ÁREA TSH`) %>% 
  summarise(Total = sum(ALUNO_EQUIVALENTE))-> alunos_grad_inter


# 1. Separar os dados (Removendo a linha de total que já vem no seu dataframe)
df_limpo <- alunos_grad_inter %>% filter(`ÁREA TSH` != "Total")

# 2. Criar a tabela com footer calculado dinamicamente
reactable(
  df_limpo,
  striped = TRUE,          # Linhas alternadas coloridas
  highlight = TRUE,        # Destaca a linha sob o mouse
  bordered = TRUE,         # Adiciona bordas
  resizable = TRUE,        # Permite ajustar largura das colunas
  defaultPageSize = 11,    # Mostra todas as áreas de uma vez
  columns = list(
    `ÁREA TSH` = colDef(
      name = "Área de Atuação",
      footer = "Total Geral",
      style = list(fontWeight = "bold")
    ),
    Total = colDef(
      name = "Total (ETI)",
      footer = function(values) sprintf("%.1f", sum(values)),
      style = list(background = "#f7f7f7", fontWeight = "bold"),
      format = colFormat(separators = TRUE, locales = "pt-BR")
    )
  ),
  defaultColDef = colDef(
    footerStyle = list(fontWeight = "bold", background = "#eee")
  )
)

1.3 Formados

Para identificar a distribuição de estudantes concluintes de graduação por área temática, foi realizado um processamento específico utilizando os dados do Censo da Educação Superior de 2024.

Inicialmente, os registros foram filtrados para selecionar apenas estudantes cuja situação de vínculo acadêmico corresponde a “Formado”, conforme indicado na variável SITUACAO_VINCULO. Esse procedimento permite identificar os estudantes que concluíram cursos de bacharelado ou licenciatura no período analisado.

Em seguida, foram selecionadas as variáveis relevantes para a análise:

  • identificador do estudante (NU_CPF)
  • nome do curso (NOME_CURSO)
  • código do curso (CODIGO_CURSO)
  • sexo (SEXO)
  • turno (TURNO)

Posteriormente, os dados foram associados à tabela auxiliar que relaciona cada curso de graduação à sua respectiva área temática utilizada pelo Times Higher Education (THE). Essa associação foi realizada por meio de uma operação de junção (left_join) baseada no código do curso.

Após a classificação por área temática, os registros foram agregados utilizando a função group_by(), considerando a variável ÁREA TSH, e foi calculado o número total de concluintes em cada área por meio da função n(), que contabiliza o número de registros.

Em seguida, foi adicionada uma linha de total geral utilizando a função adorn_totals() do pacote janitor, permitindo a visualização do total de concluintes em todas as áreas.

# total de formados em bacharelado/licenciatura
censo_2024 %>% 
  filter(SITUACAO_VINCULO %in% c("Formado")) %>%  
  select(NU_CPF, NOME_CURSO, CODIGO_CURSO, SEXO, TURNO) %>%
  left_join(curso_por_area %>% select(Código, `ÁREA TSH`), by=c("CODIGO_CURSO"="Código")) %>% 
  group_by(`ÁREA TSH`) %>% 
  summarise(Total = n()) %>% 
  janitor::adorn_totals() -> alunos_grad_formados


# 1. Separar os dados (Removendo a linha de total que já vem no seu dataframe)
df_limpo <- alunos_grad_formados %>% filter(`ÁREA TSH` != "Total")

# 2. Criar a tabela com footer calculado dinamicamente
reactable(
  df_limpo,
  striped = TRUE,          # Linhas alternadas coloridas
  highlight = TRUE,        # Destaca a linha sob o mouse
  bordered = TRUE,         # Adiciona bordas
  resizable = TRUE,        # Permite ajustar largura das colunas
  defaultPageSize = 11,    # Mostra todas as áreas de uma vez
  columns = list(
    `ÁREA TSH` = colDef(
      name = "Área de Atuação",
      footer = "Total Geral",
      style = list(fontWeight = "bold")
    ),
    Total = colDef(
      name = "Total (ETI)",
      footer = function(values) sprintf("%.1f", sum(values)),
      style = list(background = "#f7f7f7", fontWeight = "bold"),
      format = colFormat(separators = TRUE, locales = "pt-BR")
    )
  ),
  defaultColDef = colDef(
    footerStyle = list(fontWeight = "bold", background = "#eee")
  )
)

1.4 Lista de Cursos por Área THE

Além das tabelas agregadas utilizadas na análise, foi elaborada uma listagem completa dos cursos de graduação da instituição organizados por área temática do Times Higher Education (THE). Essa listagem tem como objetivo documentar de forma transparente quais cursos estão associados a cada área utilizada nos cálculos apresentados no relatório.

1.4.1 AH - ARTES E HUMANIDADES

1.4.2 CF - CIÊNCIAS FISICA

1.4.3 CPS - CLÍNICOS, PRÉ-CLÍNICOS E SAÚDE

1.4.4 CS - CIÊNCIAS SOCIAS

1.4.5 CV - CIÊNCIAS DA VIDA

1.4.6 DI - DIREITO

1.4.7 ED - EDUCAÇÃO

1.4.8 EE - EMPRESAS E GESTÃO

1.4.9 ET - ENGENHARIA E TECNOLOGIA

1.4.10 IN - INFORMÁTICA

1.4.11 PS - PSICOLOGIA

2 Mestrado e Doutorado

Para a análise dos dados relativos à pós-graduação, foi utilizada uma base institucional contendo os registros de discentes vinculados aos programas de pós-graduação no ano de 2024. Essa base foi importada a partir de um arquivo Excel (discentes_2024.xlsx) utilizando a função read_excel() do pacote readxl.

Inicialmente, foi realizada uma etapa de limpeza da base, com o objetivo de manter apenas registros referentes à pós-graduação. Para isso, foram removidos os registros classificados como Bacharelado na variável Nível Discente, garantindo que apenas estudantes de mestrado e doutorado fossem considerados nas análises subsequentes.

Para permitir a agregação dos dados da pós-graduação segundo as áreas temáticas utilizadas pelo Times Higher Education (THE), foi importada uma tabela auxiliar contendo a correspondência entre cada programa de pós-graduação e sua respectiva área temática.

Essa tabela foi carregada a partir do arquivo “Curso por área.xlsx”, especificamente da planilha Área_pós, que contém a classificação temática utilizada nas análises do relatório.

Essa etapa é fundamental para garantir que os indicadores produzidos para a pós-graduação possam ser agregados de forma consistente com a metodologia utilizada pelo THE.

# Abrindo dados de discentes de pos graduacao em 2024:

dados_pos_2024 <- read_excel("../dados/discentes_2024.xlsx")

# Elimina alunos de graduacao
dados_pos_2024 %<>%
  filter(`Nível Discente` != "Bacharelado")

# Abrindo relacao de cursos com area THE (graduacao)
curso_por_area <- read_excel("../tabelas_auxiliares/Curso por área.xlsx", 
                             sheet = "Área_pós")

2.1 Estudantes - Mestrado

Para estimar a distribuição de estudantes de mestrado por área temática, foram utilizados os dados da base institucional de discentes de pós-graduação referentes ao ano de 2024.

Inicialmente, foram selecionados apenas os registros de estudantes cuja situação discente corresponde a “MATRICULADO” ou “TITULADO”. Esse critério permite considerar tanto os estudantes que estavam regularmente matriculados no período de referência quanto aqueles que concluíram o curso no mesmo ano.

Em seguida, os dados foram filtrados para manter apenas estudantes vinculados a programas de mestrado acadêmico e mestrado profissional, conforme indicado na variável Nível Discente.

Como os mestrados profissionais aparecem como uma categoria distinta na base original, foi realizada uma etapa de padronização da variável de nível, na qual os registros classificados como “Mestrado Profissional” foram recodificados simplesmente como “Mestrado”. Esse procedimento permite consolidar todas as modalidades de mestrado em uma única categoria analítica.

Após essa etapa de padronização, os registros de estudantes foram associados à tabela auxiliar que relaciona cada programa de pós-graduação à sua respectiva área temática do Times Higher Education (THE). Essa associação foi realizada por meio de uma operação de junção (left_join), utilizando como chave o nome do programa de pós-graduação.

Para evitar duplicidades na tabela auxiliar, foi aplicada a função distinct() garantindo que cada programa estivesse associado a apenas uma área temática.

Na etapa final do processamento, os dados foram agregados por área temática (Area TSH), e foi calculado o número total de estudantes em cada área utilizando a função n(). Os resultados foram então organizados em ordem alfabética das áreas para facilitar a visualização.

O resultado final desse processamento apresenta o total de estudantes de mestrado por área temática.

alunos_matriculados_mest <- dados_pos_2024 %>% 
  filter(`Situação Discente` %in% c("MATRICULADO", "TITULADO"),
         `Nível Discente` %in% c("Mestrado", "Mestrado Profissional")) %>% 
  mutate(`Nível Discente` = ifelse(`Nível Discente` == "Mestrado Profissional", 
                                   "Mestrado", `Nível Discente`)) %>% 
  left_join(
    curso_por_area %>% select(Curso, `Area TSH`) %>% distinct(Curso, .keep_all = TRUE),
    by = c("Nome do PPG" = "Curso")
  ) %>% 
  group_by(`Area TSH`) %>% 
  summarise(total_alunos = n()) %>% arrange(`Area TSH`) 

# 2. Limpeza adicional: remover NAs ou áreas vazias que podem ter surgido no join
df_limpo <- alunos_matriculados_mest 

# 3. Criar a tabela reactable
reactable(
  df_limpo,
  striped = TRUE,
  highlight = TRUE,
  bordered = TRUE,
  resizable = TRUE,
  defaultPageSize = 12,
  columns = list(
    `Area TSH` = colDef(
      name = "Área de Atuação",
      footer = "Total Geral",
      style = list(fontWeight = "bold")
    ),
    total_alunos = colDef(
      name = "Total de Alunos",
      # O footer calcula a soma exata do que está sendo exibido na coluna
      footer = function(values) format(sum(values), big.mark = ".", decimal.mark = ","),
      style = list(background = "#f7f7f7", fontWeight = "bold"),
      align = "center"
    )
  ),
  defaultColDef = colDef(
    footerStyle = list(fontWeight = "bold", background = "#eee")
  )
)

2.2 Estudantes - Doutorado

Para estimar a distribuição de estudantes de doutorado por área temática, foram utilizados os dados da base institucional de discentes de pós-graduação referentes ao ano de 2024.

Inicialmente, foram selecionados apenas os registros de estudantes cuja situação discente corresponde a “MATRICULADO” ou “TITULADO”, considerando tanto os estudantes que estavam regularmente vinculados aos programas no período de referência quanto aqueles que concluíram o curso no mesmo ano.

Em seguida, os dados foram filtrados para manter apenas estudantes vinculados a programas de doutorado acadêmico e doutorado profissional, conforme indicado na variável Nível Discente.

Como os registros de doutorado profissional aparecem como uma categoria distinta na base original, foi realizada uma etapa de padronização da variável de nível, na qual esses registros foram recodificados como “Doutorado”. Esse procedimento permite consolidar todas as modalidades de doutorado em uma única categoria analítica para fins de agregação.

Na etapa seguinte, os registros de estudantes foram associados à tabela auxiliar que relaciona cada programa de pós-graduação à sua respectiva área temática utilizada pelo Times Higher Education (THE). Essa associação foi realizada por meio de uma operação de junção (left_join), utilizando como chave o nome do programa de pós-graduação.

Para evitar duplicidades na tabela auxiliar, foi aplicada a função distinct(), garantindo que cada programa estivesse associado a apenas uma área temática.

Posteriormente, os dados foram agregados por área temática (Area TSH), sendo calculado o número total de estudantes em cada área por meio da função n(). Por fim, os resultados foram organizados em ordem alfabética das áreas para facilitar a leitura e interpretação.

O resultado desse processamento apresenta o total de estudantes de doutorado por área temática.

# numero de alunos doutorado 

dados_pos_2024 %>% 
  filter(`Situação Discente` %in% c("MATRICULADO", "TITULADO"),
         `Nível Discente` %in% c("Doutorado", "Doutorado Profissional")) %>% 
  mutate(`Nível Discente` = ifelse(`Nível Discente` == "Doutorado Profissional", 
                                   "Doutorado", `Nível Discente`)) %>% 
  left_join(
    curso_por_area %>% select(Curso, `Area TSH`) %>% distinct(Curso, .keep_all = TRUE),
    by = c("Nome do PPG" = "Curso")
  ) %>% 
  group_by(`Area TSH`) %>% 
  summarise(total_alunos = n()) %>% 
  arrange(`Area TSH`) -> alunos_matriculados_doc

# 1. Separar os dados (Removendo a linha de total que já vem no seu dataframe)
df_limpo <- alunos_matriculados_doc 

# 2. Criar a tabela com footer calculado dinamicamente
reactable(
  df_limpo,
  striped = TRUE,          # Linhas alternadas coloridas
  highlight = TRUE,        # Destaca a linha sob o mouse
  bordered = TRUE,         # Adiciona bordas
  resizable = TRUE,        # Permite ajustar largura das colunas
  defaultPageSize = 11,    # Mostra todas as áreas de uma vez
  columns = list(
    `Area TSH` = colDef(
      name = "Área de Atuação",
      footer = "Total Geral",
      style = list(fontWeight = "bold")
    ),
    total_alunos = colDef(
      name = "Total (ETI)",
      footer = function(values) sprintf("%.1f", sum(values)),
      style = list(background = "#f7f7f7", fontWeight = "bold"),
      format = colFormat(separators = TRUE, locales = "pt-BR")
    )
  ),
  defaultColDef = colDef(
    footerStyle = list(fontWeight = "bold", background = "#eee")
  )
)

2.3 Feminino

Com o objetivo de analisar a participação feminina na pós-graduação, foi realizada a identificação do número de estudantes do sexo feminino matriculados em programas de pós-graduação, agregados por área temática.

Para isso, foram utilizados os dados institucionais de discentes de pós-graduação referentes ao ano de 2024. Inicialmente, foram selecionados apenas os registros de estudantes cuja situação discente corresponde a “MATRICULADO” ou “TITULADO”, de forma a incluir tanto estudantes regularmente matriculados quanto aqueles que concluíram seus cursos no período analisado.

Em seguida, os dados foram filtrados considerando apenas os registros classificados como gênero feminino, conforme indicado na variável Gênero.

Posteriormente, os registros de estudantes foram associados à tabela auxiliar que relaciona cada programa de pós-graduação à sua respectiva área temática do Times Higher Education (THE). Essa associação foi realizada por meio de uma operação de junção (left_join), utilizando como chave o nome do programa de pós-graduação.

Para garantir consistência na correspondência entre programas e áreas temáticas, foi utilizada a função distinct() na tabela auxiliar, assegurando que cada programa estivesse associado a apenas uma área.

Na etapa final, os dados foram agregados por área temática (Area TSH) e gênero, sendo calculado o número total de estudantes por meio da função n(). Os resultados foram então organizados em ordem alfabética das áreas para facilitar a leitura.

O resultado desse processamento apresenta o total de estudantes do sexo feminino na pós-graduação por área temática.

# Numero de estudantes matriculados por area - doutorado - feminino

dados_pos_2024 %>%
  filter(`Situação Discente` %in% c("MATRICULADO", "TITULADO"),
         Gênero == "Feminino") %>%
  #filter(`Nível Discente` %in% c("Mestrado", "Doutorado")) %>%
  left_join(
    curso_por_area %>% select(Curso, `Area TSH`) %>% distinct(Curso, .keep_all = TRUE),
    by = c("Nome do PPG" = "Curso")
  ) %>%
  group_by(`Area TSH`, Gênero) %>% 
  summarise(total_alunos=n()) %>% 
  arrange(`Area TSH`) -> alunos_matriculados_pos_fem


# 1. Separar os dados (Removendo a linha de total que já vem no seu dataframe)
df_limpo <- alunos_matriculados_pos_fem 

# 2. Criar a tabela com footer calculado dinamicamente
reactable(
  df_limpo,
  striped = TRUE,          # Linhas alternadas coloridas
  highlight = TRUE,        # Destaca a linha sob o mouse
  bordered = TRUE,         # Adiciona bordas
  resizable = TRUE,        # Permite ajustar largura das colunas
  defaultPageSize = 11,    # Mostra todas as áreas de uma vez
  columns = list(
    `Area TSH` = colDef(
      name = "Área de Atuação",
      footer = "Total Geral",
      style = list(fontWeight = "bold")
    ),
    total_alunos = colDef(
      name = "Total (ETI)",
      footer = function(values) sprintf("%.1f", sum(values)),
      style = list(background = "#f7f7f7", fontWeight = "bold"),
      format = colFormat(separators = TRUE, locales = "pt-BR")
    )
  ),
  defaultColDef = colDef(
    footerStyle = list(fontWeight = "bold", background = "#eee")
  )
)

2.4 Estrangeiros

Com o objetivo de identificar a presença de estudantes internacionais nos programas de pós-graduação, foi realizada uma análise da base institucional de discentes referente ao ano de 2024, considerando estudantes de mestrado e doutorado.

Inicialmente, foram selecionados apenas os registros de estudantes cuja situação discente corresponde a “MATRICULADO” ou “TITULADO”, garantindo a inclusão tanto de estudantes regularmente vinculados aos programas quanto daqueles que concluíram seus cursos no período analisado.

Em seguida, os dados foram filtrados para considerar apenas os estudantes classificados como estrangeiros, conforme indicado na variável Nacionalidade.

Após essa etapa, os registros foram associados à tabela auxiliar que relaciona cada programa de pós-graduação à sua respectiva área temática utilizada pelo Times Higher Education (THE). Essa associação foi realizada por meio de uma operação de junção (left_join), utilizando como chave o nome do programa de pós-graduação.

Para assegurar consistência na correspondência entre programas e áreas temáticas, foi utilizada a função distinct() na tabela auxiliar, garantindo que cada programa estivesse associado a apenas uma área temática.

Na etapa final do processamento, os dados foram agregados por área temática (Area TSH), sendo calculado o número total de estudantes internacionais por meio da função n(). Os resultados foram então organizados em ordem alfabética das áreas para facilitar a visualização.

O resultado desse processamento apresenta o total de estudantes internacionais de pós-graduação por área temática.

# Numero de alunos mestrado e doutorado - estrangeiro
dados_pos_2024 %>%
  filter(`Situação Discente` %in% c("TITULADO","MATRICULADO"), 
         Nacionalidade == "Estrangeiro") %>% 
  left_join(curso_por_area %>% select(Curso, `Area TSH`) %>% 
              distinct(Curso, .keep_all = TRUE), by = c("Nome do PPG"="Curso")) %>% 
  group_by(`Area TSH`) %>% 
  summarise(total_alunos=n()) %>% 
  arrange(`Area TSH`) -> alunos_estrangeiros_doc

# 1. Separar os dados (Removendo a linha de total que já vem no seu dataframe)
df_limpo <- alunos_estrangeiros_doc 

# 2. Criar a tabela com footer calculado dinamicamente
reactable(
  df_limpo,
  striped = TRUE,          # Linhas alternadas coloridas
  highlight = TRUE,        # Destaca a linha sob o mouse
  bordered = TRUE,         # Adiciona bordas
  resizable = TRUE,        # Permite ajustar largura das colunas
  defaultPageSize = 11,    # Mostra todas as áreas de uma vez
  columns = list(
    `Area TSH` = colDef(
      name = "Área de Atuação",
      footer = "Total Geral",
      style = list(fontWeight = "bold")
    ),
    total_alunos = colDef(
      name = "Total (ETI)",
      footer = function(values) sprintf("%.1f", sum(values)),
      style = list(background = "#f7f7f7", fontWeight = "bold"),
      format = colFormat(separators = TRUE, locales = "pt-BR")
    )
  ),
  defaultColDef = colDef(
    footerStyle = list(fontWeight = "bold", background = "#eee")
  )
)

2.5 Formados - Doutorado

Para estimar o número de títulos de doutorado concedidos pela instituição, foi realizada uma análise da base institucional de discentes de pós-graduação referente ao ano de 2024.

Inicialmente, foram selecionados os registros de estudantes cuja situação discente indica conclusão ou progressão acadêmica associada à defesa de tese. Foram considerados os seguintes status registrados na variável Situação Discente:

  • TITULADO
  • MUDANÇA DE NÍVEL COM DEFESA
  • MUDANÇA DE NÍVEL SEM DEFESA

Esse conjunto de categorias permite capturar todos os casos em que houve atribuição de título de doutorado ou situações administrativas associadas à conclusão do curso.

Em seguida, os dados foram filtrados para manter apenas estudantes vinculados a programas de doutorado acadêmico e doutorado profissional, conforme indicado na variável Nível Discente.

Como os registros de doutorado profissional aparecem como uma categoria distinta na base original, foi realizada uma etapa de padronização da variável de nível, na qual esses registros foram recodificados como “Doutorado”, consolidando todas as modalidades de doutorado em uma única categoria analítica.

Posteriormente, os registros foram associados à tabela auxiliar que relaciona cada programa de pós-graduação à sua respectiva área temática utilizada pelo Times Higher Education (THE). Essa associação foi realizada por meio de uma operação de junção (left_join), utilizando como chave o nome do programa de pós-graduação.

Para garantir consistência na correspondência entre programas e áreas temáticas, foi aplicada a função distinct() na tabela auxiliar, assegurando que cada programa estivesse associado a apenas uma área temática.

Na etapa final do processamento, os dados foram agregados por nível discente e área temática, sendo calculado o número total de títulos concedidos por meio da função n(). Posteriormente, os resultados foram organizados por área temática e filtrados para manter apenas os registros referentes ao nível de doutorado.

O resultado desse processamento apresenta o total de doutoramentos atribuídos por área temática.

# Numero de doutoramentos atribuidos 
dados_pos_2024 %>%
  filter(`Situação Discente` %in% c("TITULADO",
                                    "MUDANCA DE NÍVEL COM DEFESA",
                                    "MUDANCA DE NÍVEL SEM DEFESA"),
         `Nível Discente` %in% c("Doutorado", "Doutorado Profissional")) %>%
  mutate(`Nível Discente` = ifelse(`Nível Discente` == "Doutorado Profissional", 
                                   "Doutorado", `Nível Discente`)) %>% 
  left_join(curso_por_area %>% select(Curso, `Area TSH`) %>% 
              distinct(Curso, .keep_all = TRUE), by = c("Nome do PPG"="Curso")) %>% 
  group_by(`Nível Discente`, `Area TSH`) %>% 
  summarise(total_alunos=n()) %>% arrange(`Area TSH`) %>% 
  filter(`Nível Discente` == "Doutorado") -> alunos_formados_doc

# 1. Separar os dados (Removendo a linha de total que já vem no seu dataframe)
df_limpo <- alunos_formados_doc 

# 2. Criar a tabela com footer calculado dinamicamente
reactable(
  df_limpo,
  striped = TRUE,          # Linhas alternadas coloridas
  highlight = TRUE,        # Destaca a linha sob o mouse
  bordered = TRUE,         # Adiciona bordas
  resizable = TRUE,        # Permite ajustar largura das colunas
  defaultPageSize = 11,    # Mostra todas as áreas de uma vez
  columns = list(
    `Area TSH` = colDef(
      name = "Área de Atuação",
      footer = "Total Geral",
      style = list(fontWeight = "bold")
    ),
    total_alunos = colDef(
      name = "Total (ETI)",
      footer = function(values) sprintf("%.1f", sum(values)),
      style = list(background = "#f7f7f7", fontWeight = "bold"),
      format = colFormat(separators = TRUE, locales = "pt-BR")
    )
  ),
  defaultColDef = colDef(
    footerStyle = list(fontWeight = "bold", background = "#eee")
  )
)

2.6 Lista de Cursos por Área - Mestrado e Doutorado

2.6.1 AH - ARTES E HUMANIDADE

2.6.2 CF - CIÊNCIAS FÍSICAS

2.6.3 CPS - CLÍNICO, PRÉ-CLÍNICOS E SAÚDE

2.6.4 CS - CIÊNCIAS SOCIAS

2.6.5 CV - CIÊNCIAS DA VIDA

2.6.6 DI -DIREITO

2.6.7 ED - EDUCAÇÃO

2.6.8 EE - EMPRESAS E ECONOMIA

2.6.9 ET - ENGENHARIA E TECNOLOGIA

2.6.10 IN - INFORMÁTICA

2.6.11 PS - PSICOLOGIA

3 Docentes

Para a análise do corpo docente da instituição, foi utilizada uma base administrativa contendo os registros de docentes vinculados à universidade no ano de 2024. Essa base foi importada a partir de um arquivo Excel utilizando a função read_excel() do pacote readxl.

Após a importação da base, foi realizada uma etapa de filtragem dos registros, com o objetivo de manter apenas os docentes que fazem parte do corpo acadêmico considerado nas análises institucionais.

Primeiramente, foram removidos os docentes vinculados ao Colégio de Aplicação, identificados pelo cargo “Professor de Ensino Básico, Técnico e Tecnológico”, uma vez que esses profissionais atuam predominantemente na educação básica e não compõem o corpo docente responsável pelas atividades de ensino e pesquisa da graduação e pós-graduação.

Em seguida, foram mantidos apenas os registros de docentes cuja situação funcional corresponde a uma das seguintes categorias:

  • Ativo permanente
  • Professor visitante
  • Professor substituto

Essa etapa garante que o conjunto de dados reflita o corpo docente efetivamente ativo no período analisado.

Para permitir a agregação dos dados do corpo docente segundo as áreas temáticas utilizadas pelo Times Higher Education (THE), foi importada uma tabela auxiliar contendo a correspondência entre departamentos acadêmicos e áreas temáticas.

Essa tabela foi carregada a partir do arquivo “departamentos_por_area.xlsx”, que relaciona cada departamento da instituição à sua respectiva área temática. Essa classificação permite posteriormente agregar os docentes por área de conhecimento de forma consistente com as demais análises realizadas no relatório.

3.1 Número de Docentes por sexo (ETI)

Para estimar a distribuição do corpo docente por área temática, foi utilizada a base administrativa de docentes da instituição referente ao ano de 2024, previamente tratada para manter apenas docentes ativos elegíveis para as análises institucionais.

Inicialmente, foram selecionadas as variáveis necessárias para a análise, incluindo:

  • identificador do docente (CPF);
  • sexo (Sexo);
  • departamento de vinculação (Departamento);
  • centro acadêmico (Centro);
  • cargo docente (Cargo);
  • regime de trabalho (RT).

Em seguida, foi calculada a variável ETI (Equivalente em Tempo Integral), utilizada para padronizar a contagem do corpo docente considerando diferenças no regime de trabalho. Nesse procedimento, docentes com regime de trabalho de 20 horas semanais foram contabilizados com peso 0,5, enquanto docentes com regimes de trabalho superiores foram contabilizados com peso 1.

Posteriormente, os registros foram associados à tabela auxiliar que relaciona cada departamento acadêmico à sua respectiva área temática utilizada pelo Times Higher Education (THE). Essa associação foi realizada por meio de uma operação de junção (left_join).

Após a classificação por área temática, os dados foram agregados por área temática (area_THE) e sexo, sendo calculada a soma dos valores de ETI para cada grupo.

Na sequência, os dados foram reorganizados para o formato tabular, transformando os valores da variável sexo em colunas separadas, o que permite visualizar a distribuição do corpo docente por gênero em cada área temática.

Por fim, foram adicionados totais gerais por linha e por coluna, permitindo visualizar tanto o total de docentes por área quanto o total geral do corpo docente da instituição.

O resultado desse processamento apresenta o número de docentes em tempo integral equivalente por área temática e sexo.

3.2 Numero de funcionarios de investigacao ETI

Para estimar o número de docentes envolvidos em atividades de investigação, foi utilizada a base institucional de docentes referente ao ano de 2024, previamente tratada para manter apenas registros válidos do corpo docente da universidade.

Nesta etapa, foram considerados apenas os docentes cuja situação funcional corresponde a “ATIVO PERMANENTE”, excluindo professores substitutos e visitantes. Essa escolha metodológica busca representar de forma mais precisa o conjunto de docentes que compõem o corpo permanente da instituição, geralmente responsável pela condução das atividades de pesquisa e orientação em programas de pós-graduação.

Inicialmente, foram selecionadas as variáveis necessárias para a análise, incluindo:

  • identificador do docente (CPF);
  • sexo (Sexo);
  • departamento de vinculação (Departamento);
  • centro acadêmico (Centro);
  • situação funcional (Situação);
  • regime de trabalho (RT).

Em seguida, foi calculada a variável ETI (Equivalente em Tempo Integral), utilizada para padronizar a contagem do corpo docente considerando diferenças no regime de trabalho. Nesse procedimento, docentes com regime de trabalho de 20 horas semanais foram contabilizados com peso 0,5, enquanto docentes com regimes de trabalho superiores foram contabilizados com peso 1.

Posteriormente, os registros foram associados à tabela auxiliar que relaciona cada departamento acadêmico à sua respectiva área temática utilizada pelo Times Higher Education (THE). Essa associação foi realizada por meio de uma operação de junção (left_join).

Após a classificação por área temática, os dados foram agregados considerando a variável área temática (area_THE), sendo calculada a soma dos valores de ETI em cada área.

O resultado desse processamento foi armazenado no objeto docentes_investigacao, que apresenta o número de docentes permanentes em tempo integral equivalente por área temática, representando o corpo docente potencialmente envolvido em atividades de investigação.

3.3 Lista de lotações por Área THE

3.3.1 AH - ARTES E HUMANIDADES

3.3.2 CF - CIÊNCIAS FISICA

3.3.3 CPS – CLÍNICO, PRÉ-CLÍNICOS E SAÚDE

3.3.4 CS - CIÊNCIAS SOCIAS

3.3.5 CV - CIÊNCIAS DA VIDA

3.3.6 DI – DIREITO

3.3.7 ED – EDUCAÇÃO

3.3.8 EE - EMPRESAS E GESTÃO

3.3.9 ET - ENGENHARIA E TECNOLOGIA

3.3.10 IN – INFORMÁTICA

3.3.11 PS - PSICOLOGIA

4 Fluxo de Preparação dos Dados

O processo de construção dos indicadores pode ser resumido no seguinte fluxo metodológico: