R vs Python 2018 ¿Cuál es el mejor en cada caso?

R vs Python 2018 ¿Cuál es el mejor en cada caso?

sep´18 Patricia Merayo 0 comentarios

R y Python son dos de los lenguajes favoritos de los Data Scientists.

En este post debatimos sobre los pros y los contras de R y Python, con la participación especial de reconocidos expertos que acudieron a nuestra llamada en Twitter.

¡Sus conclusiones te van a sorprender!

Historia ¿Cómo surgieron estos lenguajes?

Ambos surgen en los años noventa dentro del ámbito académico

👉 R apareció por primera vez en 1996, creado por los profesores de estadística Ross Ihaka y Robert Gentleman de la Universidad de Auckland en Nueva Zelanda. El nombre surge de las iniciales de ambos creadores, ya que se inspiró en el lenguaje S de Bell Labs.

👉 Python se creó en 1991 por Guido Van Rossum en el Centro para las Matemáticas y la Informática (CWI, Centrum Wiskunde & Informatica) de los Países Bajos. El nombre surge de la afición de su creador por los humoristas británicos Monty Python. Python se inspiró en el lenguaje C, Modula-3 y ABC.

Uso. ¿En qué se especializan? ¿Qué problemas intentan resolver?

R es la lengua franca de las estadísticas (y los gráficos), mientras que Python es un lenguaje multi-propósito que  permite mejorar la productividad de los desarrolladores

En comparación con Python, es más fácil realizar análisis de datos complejos en R. La gran cantidad de paquetes estadísticos te permite realizar cualquier análisis de datos de manera sencilla y rápida, con pocas líneas de código. 

Si bien Python cuenta con paquetes para el análisis estadístico, todavía le falta algo de la riqueza de R para el análisis de datos. Ahora mismo R está por delante en este punto, aunque poco a poco se está cerrando la brecha.

Dominic Royé (Ph.D. en Geografía Física investigador en la Universidad de Oporto y la Universidad De Santiago de Compostela) y Carlos Gil (estadístico y científico de datos con una trayectoria espectacular, miembro fundador de la Comunidad de usuarios de R, Madrid) opinan sobre R.

Por otro lado, Python es más adecuado para implementar algoritmos de productividad. Tienes acceso a un gran número de paquetes para desarrolladores que te permiten crear código general de manera más rápida y vincular flujos de trabajos o componentes (aunque para objetivos estadísticos esto puede complicarse). R se puede utilizar como lenguaje de programación, pero esa no es su fortaleza. 

Juliá Minguillón (científico de datos, Barcelona) y SEOpuz también opinan sobre Python.

En resumen:

R tiene una ventaja en estadística y visualización, mientras que Python tiene una ventaja en herramientas de construcción.

Gráficos. ¿Con cuál de ellos podemos crear los gráficos más impactantes?

R y la visualización de datos son una combinación perfecta

En términos de visualización de datos, R está muy por delante de Python. R ofrece gráficos sorprendentes mucho más sofisticados que los de Python. Por ejemplo, paquetes como ggplot2 hacen que graficar sea más fácil y más personalizable en R que en Python. Otros paquetes de visualización fundamentales son ggplot2, ggvis, googleVis y rCharts.

Actualización. ¿Cómo estar a la última en Data Science?

R está más actualizado en las últimas técnicas estadísticas, debido a su fuerte vínculo con el entorno académico.

El desarrollo de nuevas técnicas estadísticas es más rápido en R. Si existe una técnica estadística, es probable que ya exista un paquete R para implementarla. Por eso, hay momentos en que R es la mejor herramienta para el trabajo… O la única herramienta. Esto ocurre con modelos complejos como los modelos mixtos o GAM, como indicó Carlos Gil. 

El enorme ecosistema de paquetes suele ser una gran ventaja para estos lenguajes, como indican Pachá (usuario experto de R) y Antonio Canepa Oneto (bioestadístico, ecólogo y biólogo marino de Burgos).

Velocidad y capacidad. ¿Cómo trabajar con Big Data?

R y Python están integrados en la nube

Ambos te permiten interactuar con servicios en la nube para acelerar los procesos con grandes conjuntos de datos, como indican Jose Ramón Cajide (Científico de Datos de Madrid), Juanma Boschetti (Científico de Datos de Buenos Aires) y José Luis Cañadas (Científico de Datos en Orange de Madrid).

R es más rápido para realizar análisis estadísticos, pero puede ser más lento si queremos escribir código general o acceder a grandes bases de datos, como afirma Francesc Pons líneas abajo.

Pero R fue desarrollado para facilitar la vida de los estadísticos, no la vida de su computadora, indica Dominic Royé.

Podemos aceptar una menor velocidad si valoramos el tiempo ahorrado al no tener que volver a inventar la rueda cada vez que queremos hacer algo nuevo. También hay que decir que existen múltiples paquetes para mejorar el rendimiento de R, como el paquete Rcpp que integra R con C ++

Gratuitos y de código abierto. ¡Soy libre!

Tanto R como Python son Open Source

diferencia de otros softwares comerciales como SPSS y SAS, tanto R como Python son:

👉 Gratuitos, puedes usarlos sin tener que persuadir a su jefe para comprar una licencia.

👉 De código libre y abierto, puedes extenderlos sin tener que pedir permiso. Eso significa que cualquiera puede examinar el código fuente para ver exactamente lo que está haciendo. Y también puedes corregir errores y/o agregar funciones, sin depender del proveedor. Como mencioné arriba, la naturaleza abierta de R & Python les permite obtener las últimas características más rápido, incluso más rápido en el caso de R.

R y Python tienen comunidades de soporte muy activas

Ambas herramientas tienen comunidades online muy activas que ofrecen soporte a sus usuarios, con perfiles profesionales distintos. Esto es una gran ventaja, ya que te ahorras tener que pagar por acceder a soporte técnico como sí sucede con los softwares comerciales.

En términos generales Python tiene peor documentación, como indica Antonio Canepa.

Plataformas

Tanto R como Python son independientes de la plataforma

Por este motivo puedes utilizarlos en cualquier sistema operativo: GNU / Linux, Macintosh y Microsoft Windows.

Popularidad. R o Python ¿cuál es el favorito?

¡Es difícil compararlos y sacar conclusiones al 100%!

En la web, puedes encontrar muchos sitios que comparan la popularidad de R y Python.

Si bien estas cifras a menudo dan una buena indicación general de cómo estos dos idiomas están evolucionando, es difícil compararlos entre sí.

La razón principal se debe a que encontrarás usuarios R solo en un entorno de ciencia de datos, mientras que Python al ser un lenguaje multi-propósito se usa más ampliamente, en otros campos como el desarrollo web, sesgando los resultados (ver KDnuggets).

Así lo señalan Antonio Canepa y Dominic Royé.

Aprendizaje ¿Cuál es el lenguaje más sencillo de aprender?

La curva de aprendizaje dependerá de tus habilidades y conocimientos previos en programación, estadística, etc…

👉 R no requiere que seas programador. Ni siquiera diría que R es para programadores, es un lenguaje accesible para realizar análisis de datos desde cualquier disciplina. Yo no vengo de una formación en informática ni pensé convertirme en programadora, aprendí R de manera autodidacta en 2005, cuando incluso la documentación disponible no era tan abundante como lo es ahora.

👉 Python sí es un lenguaje vinculado a la programación informática. A algunos les parecerá más sencillo aprender Python que R mientras que otros, como a Antonio Canepa, prefieren R porque están más familiarizados con el lenguaje estadístico que con el lenguaje de los ingenieros e informáticos

Uno para todos y todos para uno

Hay puntos claros de interacción entre R y Python, y ambos ecosistemas continúan fortaleciéndose.

¿Por qué elegir uno de ellos si puedes utilizar ambos lenguajes a la vez?

  • Puedes usar Python desde R con el paquete rPython.
  • Puedes usar R desde Python con el paquete RPy2.
  • UtilizaJupyter Notebook y Beaker Notebook, para acceder a ambos incluso en un mismo análisis.

También existe un proyecto muy interesante que busca crear paquetes independientes de la plataforma (Ursa labs). Está dirigido nada menos que por Wes McKinney y Hadley Wickham.

¿Cuál es el mejor?

Ninguna herramienta es la mejor para todos ni para todo.

Sería ridículo decir que un lenguaje es el mejor. Cada uno tiene sus ventajas, y qué lenguaje necesitas aprender dependerá de tu contexto y habilidades. Para elegir R o Python piensa cuáles de sus ventajas se adaptan mejor a tus necesidades, aunque no necesariamente serán las mejores para alguien que trabaje en un área diferente, con diferentes exigencias.

Ten en cuenta el campo en el que deseas trabajar, la empresa para la que trabajas, el equipo en el que trabajas y la herramientas que utilizan. 

Si eres el único que usa R donde todos los demás usan -por ejemplo- SPSS, puede ser difícil pedir ayuda a tus compañeros o compartir resultados. Pero cuidado, no tienes por qué seguir a la mayoría. Conocer un nuevo lenguaje te permite tener más habilidades, abrirte a más oportunidades y potenciar tu efectividad

Por lo tanto, incluso si todos los que te rodean usualmente usan SPSS u otra herramienta comercial, es recomendable que aprendas lenguajes de gran potencial como R o Python.

En general:

👉 Si trabajas en investigación, estadística o análisis de datos, es probable que prefieras R. 

👉 Si trabajas en ingeniería o programación, seguramente preferirás Python.

La gran pregunta… ¿Cómo comenzar?

Los manuales son buenos libros de referencia y pueden ayudarte a aprender nuevas funciones, pero no son sencillos para los principiantes. Elegir esta alternativa es como intentar aprender R desde un diccionario, puede que te sientas frustrado si son tus primeros pasos.

En su lugar te recomiendo:

  1. Encuentra un tutor experimentado que te guíe y obtén una buena capacitación práctica donde veas cómo se usan realmente los lenguajes (o paquetes) para resolver problemas reales. Así estarás bien preparado para el autoaprendizaje más adelante.
  2. Recuerda: no necesitas dominar todas las opciones de una herramienta para poder usarla. No tienes que aprender cada análisis específico desde el principio.Es como cuando comenzamos a hablar, no necesitas conocer todas las reglas gramaticales.  ¡Lánzate y juega! 
  3. Construye una base sólida, desde los conceptos básicos hasta los modelos lineales (regresión lineal, ANOVA). Una vez que tengas esas habilidades, podrás agregar nuevas habilidades cuando las necesites.

✍️ Nota final

En definitiva, R y Python son dos lenguajes potentes, flexibles y accesibles. Si aún no has trabajado con ellos, ojalá este post sirva para animarte a hacerlo cuanto antes.

Espero que hayas disfrutado de esta puesta en común, y aunque la lista de puntos fuertes y débiles no está completa, creo que es un buen punto de partida para que comiences el camino hacia el Data Science.

Agradezco sinceramente la colaboración de los profesionales expertos que han querido participar de este debate. Su aporte ha sido muy valioso.

Si tu también quieres aportar tu punto de vista, ¡te animo a hacerlo aquí! También puedes dejarme tu comentario bajo el post, estaré encantada de leerte y conocer tu opinión.

¡Gracias por tu atención!

0 comentarios

Acepto la política de privacidad

¹ Todos los campos son obligatorios.
² Tu correo electrónico no será publicado.

Nadie ha publicado ningún comentario aún. ¡Se tu la primera persona!

En Máxima Formación utilizamos cookies propias y de terceros con finalidad analítica y publicitaria. En nuestra política de cookies te contamos cuáles usamos y cómo desactivarlas si quieres. Aceptar todas Configurar/Rechazar

Diseño web: Albin Soft.