• PowerPro Consulting

R Scripts en Power Query: Remover acentos de todos los caracteres acentuados en una columna de texto

Actualizado: 21 de feb de 2019


Hoy mismo se me presentó el siguiente problema: ¿Cómo remover todos los acentos de caracteres acentuados en una columna de texto en Power BI?

En otras palabras como llegar de A (columna con acentos) a B (misma columna pero sin acentos), de manera automatizada en Power BI.


Solamente me interesa remover los acentos de cada cadena de texto, todo lo demás deber de quedar exactamente igual. Al principio se me ocurrió utilizar alguna función M como TEXT.REPLACE. El gran incoveniente de este enfoque es que tendría que declarar cada uno de los posible caracteres acentuados dentro de la una función diferente. Lo cual va en contra de mi máxima en la vida: SIMPLICIDAD = ELEGANCIA.

Entonces se me ocurrió intentar con un lenguage diferente: R. Desde hace ya tiempo que es posible correr scripts de R dentro de Power Query.

Instrucciones para instalar R en tu computadora y habilitar el complemento en Power BI --> Click aqui.

Una vez realizado el paso anterior, procedemos a ejecutar el siguiente script de R en nuestro editor de consultas:


# 'dataset' holds the input data for this script

library (dplyr) library (stringi)

newcalc <- dataset %>% mutate ( ProductCategoryDescription = stri_trans_general (ProductCategoryDescription, "Latin-ASCII") )

El resultado es el siguiente:


Básicamente lo que hicimos a través de los paquetes dplyr y stringi de R, es tomar una columna existente: ProductCategoryDescription la cual contiene caracteres acentuados y transformándola en una columna con caracteres ASCII exclusivamente, es decir sin acentos.


#R #PowerQuery #DataCleaning

0 vistas
  • LinkedIn Social Icon
  • Twitter Social Icon
  • YouTube Social  Icon

MX: +52  333 1499 523

Power BI, Microsoft Flow, Office Excel, Azure, Power Query, Power Map, PowerPivot, PowerApps are trademarks™ or registered® trademarks of Microsoft Coporation in USA and other countries. Use of them does not imply any affiliation with or endorsement by them.