BLOG 1 – Python vs R
Introducción
Hoy en día dos campos del conocimiento tienen especial relevancia en el mundo
de las ciencias y de los negocios:
o Ciencia de datos ( o Datascience )
o Inteligencia Artificial ( o Artificial Inteligence –AI- )
La ciencia de datos avanza a pasos agigantados y es la facilitadora de muchos
desarrollos tecnológicos, servicios y soluciones. Se basa en técnicas de analítica
avanzada para extraer información relevante de los datos, para poder utilizarla en
la toma de decisiones, en las fases de planificación, de definición estratégica y
demás.
La inteligencia artificial es el área de la ciencia informática especializada en
simular el funcionamiento del cerebro humano para realizar tareas específicas que
antes requerían de la intervención humana. La inteligencia artificial se basa en el
uso de algoritmos y modelos matemáticos para procesar datos y tomar decisiones
basadas en patrones y reglas.
En particular el área de Machine Learning ( o aprendizaje automático ) que es una
rama de la inteligencia artificial que analiza los datos, aprende de éstos y aplica lo
que aprende para tomar decisiones sin necesidad de 100% de intervención
humana. Este tipo de inteligencia artificial subyace en los servicios de streaming
bajo demanda o en los sistemas de asesoramiento y gestión financiera, entre otros.
En el campo de la informática se destacan dos de los lenguajes de programación
más populares para la ciencia de datos y el machine learning. Ambos se presentan
como ideales para cualquier tarea de ciencia de datos que se te ocurra y muchos
de machine learning.
El objetivo del blog es abrir el debate entre Python y R comparando en ambos
lenguajes en distintos aspectos relevantes para estos campos.
Breve historia y enfoque de cada lenguaje
Python:
Python es un lenguaje de programación de código abierto y propósito general
utilizado en diversos ámbitos del software, como la ciencia de datos, el desarrollo
web y los videojuegos.
Python, fue creado por Guido van Rossum, un programador neerlandés, a finales
de los años 80. La primera versión pública de Python (la 0.9.0) fue lanzada en
febrero de 1991. es uno de los lenguajes de programación más populares del
mundo y ocupa el primer puesto en varios índices de popularidad, como el índice
TIOBE (Mayo 2025) y el índice PYPL(Mayo 2025). Una de las razones de la
popularidad mundial de Python reside en su comunidad de usuarios. Python
cuenta con el respaldo de una amplia comunidad de usuarios y desarrolladores
que garantizan el crecimiento y la mejora continua del lenguaje, así como el
lanzamiento continuo de nuevas bibliotecas diseñadas para diversos propósitos.
origen generalista, evolución hacia la ciencia de datos, comunidad masiva.
R:
R es un lenguaje de programación de código abierto creado específicamente para
el cálculo estadístico y la creación de gráficos.
R fue creado por Ross Ihaka y Robert Gentleman, dos estadísticos de la
Universidad de Auckland en Nueva Zelanda, a principios de los años 90 y desde
su lanzamiento en 1992, R ha sido ampliamente adoptado en la investigación
científica y el ámbito académico. Hoy en día, sigue siendo una de las herramientas
de análisis más populares, tanto en el análisis de datos tradicional como en el
campo de la analítica empresarial, en rápida evolución. Ocupa el 12.º y el 6.º
puesto en el índice TIOBE (Mayo 2025) y el PYPL(Mayo 2025), respectivamente.
Diseñado pensando en los estadísticos, con R, se pueden utilizar funciones
complejas con solo unas pocas líneas de código. Todo tipo de pruebas y modelos
estadísticos están disponibles y son fáciles de usar, como el modelado lineal, el
modelado no lineal, las clasificaciones y la agrupación en clústeres.
3. Comparativa
Factor Python R
Propósito • Propósito general • Análisis estadístico
• Aplicaciones de • Visualización
interfaz gráfica de
usuario (GUI)
• Aaplicaciones web.
• Aprendizaje
automático.
• Análisis de datos.
Usuarios Desarrolladores de Academia
software
Curva de • sintaxis intuitiva • fácil de aprender
Aprendizaje • curva de • difícil desarrollar
aprendizaje suave y experiencia.
lineal
Popularidad Nro 1 Nro 12
Librerías • Cantidad total de • Cantidad total de
paquetes en PyPI paquetes en CRAN
(2025): más de (2025): más de
450,000 paquetes. 20,000 paquetes.
• Librerías
específicas para
Data Science / IA:
se estima que hay
más de 20,000
paquetes
relacionados
directamente con
ciencia de datos,
machine learning,
visualización y
estadísticas.
Librerías • NumPy: • base R, matrix,
Especializadas proporciona una array: R tiene
amplia colección soporte nativo para
de funciones para arrays y matrices; no
computación necesita una librería
científica. externa como
• Pandas: perfecto NumPy.
para la • dplyr: Manipulación
manipulación de de data frames,
datos. agrupaciones, joins,
• Matplotlib: la filtros, etc.
biblioteca estándar • ggplot2: Creación de
para visualización gráficos estadísticos
de datos. y visuales.
• Scikit-learn: es una • caret:
biblioteca en Entrenamiento,
Python que evaluación y
proporciona comparación de
numerosos modelos clásicos de
algoritmos de ML..
aprendizaje • tensorflow (R
automático. wrapper): R permite
• TensorFlow: un usar TensorFlow de
framework forma casi idéntica a
ampliamente Python gracias a sus
utilizado para wrappers.
aprendizaje
profundo.
Velocidad y • La diferencia en • La diferencia en
rendimiento velocidad de velocidad de
ejecución entre ejecución entre
ambos lenguajes es ambos lenguajes es
mínima, sin mínima
embargo, en mi
experiencia puedo
decir que R ejecuta
el código más
lentamente que
Python, sobre todo
en las
visualizaciones.
Flexibilidad • lenguaje de alto • lenguaje de
nivel programación de
bajo nivel
• R puede requerir
código más extenso
para procesos
simples, lo que
aumenta
significativamente el
tiempo de desarrollo
Integrated • Jupyter Noteboook • RStudio
development • VS Code • Jupyter Notebook
environment • PyCharm • VS Code
(IDE) • Google Colab • R GUI / [Link]
• Spyder • Emacs + ESS
Soporte • Tanto R como • Tanto R como
Python cuentan con Python cuentan con
comunidades en comunidades en
línea que pueden línea que pueden
ayudar a los ayudar a los
programadores a programadores a
resolver cualquier resolver cualquier
problema. Python problema. Python
tiene una tiene una comunidad
comunidad más más grande que R
grande que R debido a su
debido a su antigüedad.
antigüedad. • Stack Overflow
• Stack Overflow • Reddit
• Reddit • RStudio Community
• [Link], PyData
Data Collection • Admite todo tipo • Está diseñado para
de formatos de que los analistas de
datos, desde datos importen datos
archivos de valores desde archivos de
separados por Excel, CSV y de
comas (CSV) hasta texto. Los archivos
JSON provenientes generados en
de la web. También Minitab o SPSS
puede importar también se pueden
tablas SQL convertir en marcos
directamente a su de datos de R.
código Python.
Para el desarrollo
web, la biblioteca
de solicitudes de
Python le permite
obtener fácilmente
datos de la web
para crear
conjuntos de datos.
Data Exploration • Puede explorar • Está optimizado para
datos con Pandas, el análisis estadístico
la biblioteca de de grandes conjuntos
análisis de datos de datos y ofrece
para Python. diversas opciones
Puedes filtrar, para explorarlos.
ordenar y mostrar Con R, se pueden
datos en segundos. crear distribuciones
de probabilidad,
aplicar diferentes
pruebas estadísticas
y utilizar técnicas
estándar de
aprendizaje
automático y
minería de datos.
Data Modeling • Tiene bibliotecas • Para análisis de
estándar para modelado
modelado de datos, específicos, a veces
incluyendo Numpy será necesario
para análisis de recurrir a paquetes
modelado externos a la
numérico, SciPy funcionalidad
para cálculos y principal de R. Sin
computación embargo, el conjunto
científica y scikit- específico de
learn para paquetes conocido
algoritmos de como Tidyverse
aprendizaje facilita la
automático. importación,
manipulación,
visualización y
generación de
informes sobre
datos.
Data • Aunque la • R se creó para
Visualization visualización no es demostrar los
un punto fuerte de resultados del
Python, se puede análisis estadístico.
usar la biblioteca El módulo gráfico
Matplotlib para básico permite crear
generar gráficos y fácilmente gráficos y
diagramas básicos. diagramas básicos.
Además, la También puede usar
biblioteca Seaborn ggplot2 para
le permite dibujar gráficos más
gráficos avanzados, como
estadísticos más diagramas de
atractivos e dispersión complejos
informativos. con líneas de
regresión.
NumPy (mean, median, Built-in functions (mean,
Estadística básica
etc.) median, etc.)
Statsmodels (OLS)
Ordinary Least Squares
Regresión lineal lm() function and Formulas
(OLS) Method
Modelos lineales
generalizados Statsmodels (GLM) glm() function
(GLM)
Análisis de series Time Series packages
Statsmodels (Time Series)
temporales (forecast)
ANOVA y Built-in functions (aov,
SciPy (ANOVA, t-tests)
pruebas t [Link])
SciPy (Mann-Whitney, Built-in functions
Pruebas de
Kruskal-Wallis) ([Link], etc.)
hipótesis
Análisis de
componentes scikit-learn (PCA)
princomp() function
principales
(PCA)
Agrupamiento scikit-learn (KMeans,
(K-Means, AgglomerativeClustering) kmeans(), hclust()
jerárquico)
scikit-learn
Árboles de
(DecisionTreeClassifier) rpart() function
decisión
scikit-learn
(DecisionTreeClassifier) randomForest() function
Bosque aleatorio
Ejemplos de • Mozilla utiliza la • Ford utiliza R y
Aplicaciones programación Hadoop para el
Comerciales apoyo a la toma de
Python para su decisiones basada en
base de código. datos y el análisis
• Dropbox está estadístico.
escrito • La empresa de
completamente en seguros Lloyd’s
código Python. utiliza el lenguaje R
para crear gráficos
de movimiento que
proporcionan
informes de análisis
a los inversores.
Codigo Ejemplo:
Se anexa un pequeño ejemplo del algoritmo del Principal Component Analysis
(PCA) o Análisis de Componentes Principales aplicado sobre un dataset
especifico y su implementación en ambos lenguajes.
El PCA es una técnica estadística utilizada para reducir la dimensionalidad de un
conjunto de datos, manteniendo al mismo tiempo la mayor cantidad posible de
variabilidad (información) presente en los datos originales.
PCA es especialmente útil cuando tienes muchos atributos o variables (por
ejemplo, en conjuntos de datos con cientos de columnas), y quieres:
• Simplificar los datos para visualización (por ejemplo, en 2D o 3D).
• Reducir el ruido.
• Mejorar el rendimiento de modelos de machine learning.
• Eliminar la redundancia entre variables correlacionadas.
¿Cómo funciona?
1. Estandarización: Se transforman las variables para que tengan media 0 y
desviación estándar 1.
2. Cálculo de la matriz de covarianza entre las variables (La matriz de
covarianza es una matriz que mide cómo varían juntas dos o más variables
en un conjunto de datos.)
3. Cálculo de los vectores y valores propios (eigenvectores y eigenvalores)
de esa matriz. Supongamos que tienes una matriz cuadrada 𝐴𝐴. Un
eigenvector 𝑣𝑣 de esa matriz es un vector que, al ser multiplicado por 𝐴𝐴 no
cambia su dirección, solo se escala por un número 𝜆𝜆 (ese número es el
eigenvalor asociado).
4. Selección de los componentes principales: Se ordenan los componentes
por la cantidad de varianza que explican (de mayor a menor).
5. Proyección de los datos originales en el nuevo espacio formado por los
primeros componentes.
En este particular ejemplo utilizaremos las librerías que nos proporcionan tanto
Python como R que ya tienen incorporados estos pasos dentro de su programación.
11. Conclusión y recomendaciones
Como se puede observar se entiende que la mayoría de las tareas de análisis y
ciencia de datos que se pueden realizar en R también se pueden realizar en Python,
y viceversa. Asimismo, diversos algoritmos de ciencia de datos y aprendizaje
profundo se pueden escribir en ambos lenguajes. Por lo que dar una
recomendación está más orientado a nivel de lo que se busca más que a nivel de
que un lenguaje sea superior a otro, sin embargo, algunos tips pueden ser
orientativos:
¿Tienes experiencia en programación? Gracias a su sintaxis fácil de leer, Python
tiene una curva de aprendizaje lineal y fluida. Se considera un buen lenguaje para
programadores principiantes. Con R, los principiantes pueden ejecutar tareas de
análisis de datos en minutos. Sin embargo, la complejidad de las funciones
avanzadas de R dificulta el desarrollo de la experiencia.
¿En qué ambiente te desenvuelves? R es una herramienta estadística utilizada por
académicos, ingenieros y científicos sin conocimientos de programación. Python
es un lenguaje listo para producción que se utiliza en una amplia gama de flujos
de trabajo en la industria, la investigación y la ingeniería.
¿Qué problemas intentas resolver? La programación en R es más adecuada para
el aprendizaje estadístico, con bibliotecas inigualables para la exploración y
experimentación de datos. Python es una mejor opción para el aprendizaje
automático y las aplicaciones a gran escala, especialmente para el análisis de datos
en aplicaciones web.
¿Qué importancia tienen los gráficos y diagramas? Las aplicaciones de R son
ideales para visualizar tus datos en gráficos atractivos. En cambio, las aplicaciones
de Python son más fáciles de integrar en un entorno de ingeniería.
Espero que puedas ver los ejemplos suministrados, ejecutarlos y dar una opinión
inicial sobre que te parecen estos dos lenguajes
12. Referencias
• Python vs. R comparativa en proyectos de ciencia de datos | Blog de Arsys
• Python vs R for Data Science: Which Should You Learn? | DataCamp
• Python vs. R: What’s the Difference? | IBM
• The 12 Vital Differences Between R and Python - Spiceworks
• R vs Python | GeeksforGeeks
• R vs Python, ¿cuál escoger para el análisis de datos?
• Python vs R: Which Language Excels in Data Analysis? - New Horizons - Blog | New
Horizons
• Python vs. R for Data Science 2025: Which is better?
• Differences between R vs. Python and When to Use Them | [Link] Canada
• TIOBE Index - TIOBE
• PYPL PopularitY of Programming Language index
13. Archivos Adjuntos
Blog [Link]