String Caracteres especiais Espaços em Branco

Introdução

Você não precisa usar o R, mas é uma boa ideia.


Gostaria de compartilhar uma função que desenvolvi para tabulação de resultados para um projeto da Escola de Matemática da UNIRIO durante a pandemia.

No passado, para fazer isso, provavelmente eu ia abrir o excel, selecionar uma coluna e substituir os caracteres especiais um a um. Mas hoje, como sou totalmente apaixonado pelo , posso desenvolver uma função para fazer exatamente isso de uma forma mais rápida.

Os caracteres especiais são acentos, cedilhas, til, e outras coisas bem específicas. Assim, nesse nosso encontro, eu quero:
1. Remover todos os acentos;
2. Transformar tudo em minúscula;
3. Remover todos os espaços.

Por exemplo, textos como “Estatística e Probabilidade” e “Estatística para a Educação Básica” devem ser transformados em “estatistica_e_probabilidade” e “estatistica_para_a_educacao_basica”. O nome da função é “criar_nomes” e está aqui.

criar_nomes <-function(string){
  string<-chartr("áéíóúÁÉÍÓÚýÝàèìòùÀÈÌÒÙâêîôûÂÊÎÔÛãõÃÕñÑäëïöüÄËÏÖÜÿçÇ","aeiouaeiouyyaeiouaeiouaeiouaeiouaoaonnaeiouaeiouycc",string)
  gsub("\\s+", "_", tolower(string))
}

Vamos pegar um vetor com todos os nomes de cursos da Escola de Matemática e colar no (para isso usei o datapasta, ainda vou escrever sobre ele aqui). Os nomes foram capturados do site da Escola de Matemática

disciplinas<-c("Álgebra Linear 1","Álgebra Linear 2",
               "Álgebra para a Educação Básica",
               "Análise Real","Anéis de Polinômios",
               "Aritmética","Aritmética para a Educação Básica",
               "Cálculo 1A","Cálculo 1B","Cálculo 2",
               "Cálculo com variável complexa",
               "Combinatória","Dinâmica e Organização Escolar",
               "Didática","Didática da Matemática",
               "Educação Ambiental e Cidadania",
               "Estágio Supervisionado 1",
               "Estágio Supervisionado 2",
               "Estágio Supervisionado 3",
               "Estágio Supervisionado 4",
               "Estatística e Probabilidade",
               "Estatística para a Educação Básica",
               "Fundamentos de Matemática 1",
               "Fundamentos de Matemática 2",
               "Fundamentos de Matemática 3",
               "Geometria 1","Geometria 2","Geometria 3",
               "Geometria Analítica",
               "Geometria para a Educação Básica",
               "História da Matemática",
               "Introdução à Análise Real",
               "Introdução à Ciência da Computação",
               "Laboratório de Ensino de Matemática 1 (LEMA)",
               "Laboratório de Ensino de Matemática 2 (LEMA)",
               "Língua Brasileira de Sinais (LIBRAS)",
               "Matemática Financeira","Metodologia Científica",
               "Modelos Matemáticos","Prática de Ensino 1",
               "Prática de Ensino 2","Prática de Ensino 3",
               "Prática de Ensino 4","Psicologia e Educação",
               "Seminários / Monografia","Disciplinas Optativas")

A função criar_nomes pode ser capturada dessa forma:

source('https://raw.githubusercontent.com/DATAUNIRIO/Miscellaneous_Functions_Rstats/master/criar_nomes.R',encoding = "UTF-8")

Para criar um vetor com os nomes, só precisamos fazer:

criar_nomes(disciplinas)
 [1] "algebra_linear_1"                            
 [2] "algebra_linear_2"                            
 [3] "algebra_para_a_educacao_basica"              
 [4] "analise_real"                                
 [5] "aneis_de_polinomios"                         
 [6] "aritmetica"                                  
 [7] "aritmetica_para_a_educacao_basica"           
 [8] "calculo_1a"                                  
 [9] "calculo_1b"                                  
[10] "calculo_2"                                   
[11] "calculo_com_variavel_complexa"               
[12] "combinatoria"                                
[13] "dinamica_e_organizacao_escolar"              
[14] "didatica"                                    
[15] "didatica_da_matematica"                      
[16] "educacao_ambiental_e_cidadania"              
[17] "estagio_supervisionado_1"                    
[18] "estagio_supervisionado_2"                    
[19] "estagio_supervisionado_3"                    
[20] "estagio_supervisionado_4"                    
[21] "estatistica_e_probabilidade"                 
[22] "estatistica_para_a_educacao_basica"          
[23] "fundamentos_de_matematica_1"                 
[24] "fundamentos_de_matematica_2"                 
[25] "fundamentos_de_matematica_3"                 
[26] "geometria_1"                                 
[27] "geometria_2"                                 
[28] "geometria_3"                                 
[29] "geometria_analitica"                         
[30] "geometria_para_a_educacao_basica"            
[31] "historia_da_matematica"                      
[32] "introducao_a_analise_real"                   
[33] "introducao_a_ciencia_da_computacao"          
[34] "laboratorio_de_ensino_de_matematica_1_(lema)"
[35] "laboratorio_de_ensino_de_matematica_2_(lema)"
[36] "lingua_brasileira_de_sinais_(libras)"        
[37] "matematica_financeira"                       
[38] "metodologia_cientifica"                      
[39] "modelos_matematicos"                         
[40] "pratica_de_ensino_1"                         
[41] "pratica_de_ensino_2"                         
[42] "pratica_de_ensino_3"                         
[43] "pratica_de_ensino_4"                         
[44] "psicologia_e_educacao"                       
[45] "seminarios_/_monografia"                     
[46] "disciplinas_optativas"                       

Funciona!