R vs. Python

Madrid, 17 de abril de 2023

Tiempo de lectura: 5m

Si has llegado hasta aquí, está claro que te interesa el mundo de la ciencia y análisis de datos. De ser así, seguro que te habrás cuestionado qué lenguaje es mejor aprender, cuál es más útil o fácil, o cuál es más apropiado para la tarea que quieres desempeñar. 

En este artículo esperamos que aprendas un poco sobre Python y R, dos de los lenguajes de programación más demandados en la industria de análisis de datos, así como que entiendas cuáles son las diferencias y similitudes entre estos.  

¿Qué es Python?

Aunque parezca mentira, Python apareció por primera vez a finales de los años 80 y fue creado por un investigador holandés, Guido van Rossum, mientras intentaba evolucionar el lenguaje ABC para proponer, por fin, un lenguaje de programación sencillo de aprender y de utilizar. Desde entonces, Python se ha convertido en un lenguaje con una gran versatilidad, se usa tanto para los scripts más sencillos como para desarrollo de software y páginas web. El nombre del lenguaje no es para nada común ni está relacionado con su predecesor, sino que hace referencia a uno de los grupos favoritos del creador, “Monty Python”.

Una de las características de Python, que hacen de éste un lenguaje utilizado en todos los ámbitos, es su sencillez a la hora de escribirlo y de leerlo. Con el objetivo de facilitar la cabida y aprendizaje de este lenguaje de programación, se utiliza una lógica y términos lo más parecido posible a nuestro lenguaje.

Además, la gran disponibilidad de librerías o “programas” facilitan mucho más la implementación de este lenguaje en diferentes ámbitos. 

¿Qué es R?

R, al igual que Python, tiene más años de lo que estás pensando. R apareció por primera vez en 1993 y, de la misma manera que Python, R también tuvo un predecesor. En este caso, éste fue el lenguaje S, desarrollado por Bell Laboratories en los 70, principalmente para problemas estadísticos. R contiene una gran variedad de técnicas estadísticas y gráficas (modelos lineares y no lineares, clasificación, clustering…) abiertas para cualquier tipo de usuarios. Por consiguiente, R es normalmente usado en esos campos que requieren analizar datos a gran escala y con gran precisión y profundidad

Uno de los grandes atractivos de este lenguaje de programación es que contiene lo que se llama librerías omódulos. Estos son unos “programas” con código ya previamente definido para que los usuarios puedan utilizarlos sin tener que escribir el código de cero.

R vs. Python

Tanto R como Python son gratuitos, muy demandados y open source, es decir, están abiertos a sugerencias y modificaciones del público, que se traduce en un rendimiento mayor basado en mejoras constantes. Por lo general, estos dos lenguajes son usados en la industria de análisis y tratamiento de datos. Sin embargo, mientras que R puede resultar como una elección más fuerte a la hora de usar modelos y gráficos más estadísticos, Python viene dando fuerte ofreciendo a los usuarios un lenguaje de programación más general y multiuso. 

Con respecto a la facilidad de los usuarios a familiarizarse con estos dos lenguajes, normalmente Python suele ser considerado como uno de los mejores lenguajes de programación para aprender la lógica detrás de esta práctica. Esto se debe a que requiere código más corto y de comprensión más sencilla que R. Sin embargo, aunque R pueda resultar complicado al principio, en muy poco tiempo sabrás dominar este potente lenguaje y sacarle el mayor partido. 

Adentrándonos más en el mundo de business analytics y del tratamiento de datos, hay algunas diferencias notorias que pueden ser útiles a la hora de considerar un lenguaje sobre el otro. 

En primer lugar, para la recopilación de datos, es necesario saber qué tipos de archivo soporta cada uno. En Python se puede trabajar sobre cualquier tipo de archivo, desde tablas en SQL a archivos CSV a incluso archivos adquiridos desde la web desde alguna de sus librerías. R, en cambio, es menos potente en este sentido, permite a los usuarios utilizar datos en formato Excel, texto o CSV. Sin embargo, R ofrece la posibilidad de utilizar paquetes predefinidos para poder extraer datos desde la web con muy pocas líneas de código. 

Una vez los datos han sido recopilados, el siguiente paso que se seguiría es la exploración o análisis de los mismos. Mientras que en Python es necesario utilizar una de sus librerías más famosas, Pandas, R fue diseñado precisamente para esto, para analizar datos estadísticamente y con más precisión. En este sentido R es una opción que ofrece más y mejores posibilidades a los usuarios sin necesidad de recurrir a librerías como habría que hacer en Python. 

Siguiendo el proceso que haría un analista de datos o business analyst, lo siguiente que habría que hacer es modelar los datos, es decir, representar, de manera visual, el análisis y las conexiones que se han encontrado. En el caso de Python, esto es posible gracias a alguno de sus paquetes con mayor versatilidad y más usados de Python, Numpy, SciPy o scikit-learn. El uso de estos dependerá en cuál sea el objetivo del proyecto. En el caso de algoritmos de aprendizaje automático, scikit-learn suele ser la mejor opción, mientras que, si consideramos modelos numéricos, Numpy suele ser la opción escogida. En R, en cambio, aunque es posible realizar el análisis y modelado de los datos con las funcionalidades que provee el propio lenguaje, si se necesita hacer una tarea más específica, puede ser necesario recurrir a una de sus librerías. 

Finalmente, a la hora de visualizar los datos R es el claro vencedor en este aspecto. La visualización de los datos no es una de los fuertes de Python y esto se puede ver claramente a la hora de tener que recurrir a una de sus librerías para poder representarlos, Matplotlib o Seaborn. Con estas librerías el usuario puede crear cualquier tipo de gráficas o representaciones estadísticas. Sin embargo, R fue creado justo para esto, para poder representar los resultados del análisis estadístico. Esto, además del gran uso y demanda del lenguaje en ámbitos académicos y científicos ha hecho que la variedad, nivel, calidad y posibilidades de los gráficos y elementos estadísticos sea excesivamente potente en R.

Pero... ¿Cuál es mejor?

En este artículo hemos podido conocer un poco más sobre cada lenguaje y las posibilidades que cada uno ofrece. Ambos son “open source”, es decir, que están siendo constantemente mejorados por usuarios expertos. Esto hace que las posibilidades y el user-friendliness de ambos vaya mejorando con el tiempo. 

Sin embargo, es importante tener en cuenta a la hora de decir cuál usar, el por qué y para qué cada uno de ellos fue creado. Mientras que Python fue creado con el objetivo de crear un lenguaje sencillo y con múltiples usos, el objetivo de R ha sido siempre facilitar el análisis y tratamiento de datos en ámbitos estadísticos. De esta manera, no es fácil ni conveniente elegir un lenguaje sobre otro sin conocer cuáles son los requisitos de la tarea o proyecto que vayas a comenzar. Sí cabe destacar que ambos lenguajes son muy buenas herramientas y, dominar cualquiera de ellos te puede asegurar un futuro muy prometedor.