1  Fundamentos del programa

El uso de R-studio en campos estadísticos ayudó a que los usuarios pudieran adaptarse a un IDE, con un lenguaje de programación sencillo y completo para el análisis de datos.

1.1 ¿Qué es Rstudio?

RStudio es un entorno integrado que desarrolla el lenguaje de programación en R , orientado a la estadística computacional y dashboard. Incluye una consola, editor de sintaxis que apoya la ejecución de los códigos de script, así como herramientas para el trazado, depuración y gestión del espacio de trabajo.

Fue desarrollado por Joseph J. Allarie en el 2011 y publicada por medio de la empresa de Rstudio-inc. Después de su lanzamiento siendo un software libre, esta IDE ha evolucionado en nuevas versiones, ofreciendo un entorno más completo y funcional para el análisis de datos en R. RStudio está disponible para Windows, Mac y Linux o para navegadores conectados a RStudio Server o RStudio Server Pro. Por lo que lo convierte en un lenguaje de programación muy aceptado y usado permitiendo a los usuarios manipular fácilmente R y superando a otros programas destacando su capacidad estadística.

Las actualizaciones que se aplicaron durante los años siguientes a su lanzamiento, ha ganado una gran aceptación en la comunidad de análisis de datos y estadísticos, y se ha convertido en una herramienta esencial para muchos profesionales y estudiantes que trabajan con R, en una variedad de aplicaciones, desde la investigación científica hasta la ciencia de datos y la estadística.

1.2 ¿Qué es IDE-Rstudio?

La IDE se refiere al “Entorno de Desarrollo Integrado” R-Studio, es una herramienta de software desarrollada por RStudio-inc, que proporciona un ambiente completo facilitando a los usuarios poder programar, analizar datos y realizar tareas relacionadas con el lenguaje R.

Esta IDE ofrece un editor de código, consola interactiva, gestión de proyectos, herramientas de visualización, abundancia de paquetes de librerías y otras características que hacen que trabajar con R sea más eficiente y productivo.

1.3 ¿Qué es Python?

Es un lenguaje de programación de alto nivel y propósito general. Fue creado a finales de los 80 y lanzado en 1991 por Guido van Rossum. Python se ha vuelto muy popular debido a su sintaxis clara y legible, lo que lo hace accesible para programadores principiantes, pero también es utilizado en aplicaciones más avanzadas y complejas. Es un lenguaje versátil que se utiliza en una variedad de campos, incluyendo desarrollo web, análisis de datos, aprendizaje automático, automatización, y más.

1.4 ¿Qué es un IDE – Colab/Jupyter/Spyder?

Los IDEs (Entornos de Desarrollo Integrado, por sus siglas en inglés) que mencionaste son herramientas de software que ayudan a los programadores a escribir, depurar y ejecutar código de manera eficiente. Aquí está una breve descripción de cada uno:

1.4.1 Colab (Google Colaboratory)

Colab es un entorno de desarrollo en línea basado en Jupyter Notebook que se ejecuta en la nube. Es una herramienta gratuita proporcionada por Google que permite escribir y ejecutar código Python en el navegador. Colab es popular para la colaboración en proyectos de aprendizaje automático y análisis de datos, ya que proporciona recursos computacionales y acceso a bibliotecas populares sin necesidad de configuración local.

1.4.2 Jupyter Notebook

Jupyter Notebook es un entorno interactivo de código abierto que permite crear y compartir documentos que contienen código, texto y visualizaciones. Es ampliamente utilizado en la ciencia de datos y la programación científica. Los cuadernos Jupyter son altamente interactivos y permiten a los usuarios ejecutar fragmentos de código en celdas individuales.

1.4.3 Spyder

Spyder es un entorno de desarrollo de código abierto específicamente diseñado para programación científica en Python. Proporciona herramientas avanzadas de edición de código, exploración de variables, depuración y un panel de IPython para ejecutar código interactivamente. Es una opción popular entre los científicos de datos y analistas.

Cada uno de estos entornos tiene sus propias características y ventajas, por lo que la elección de cuál usar dependerá de tus necesidades y preferencias. Colab y Jupyter Notebook son ideales para trabajar en la nube y colaborar en proyectos, mientras que Spyder se enfoca en la programación científica en Python en un entorno de desarrollo local.

1.5 Programa Orientada a Objetos

La programación orientada a objetos en RStudio y Python es un enfoque de desarrollo de software que se centra en la creación y manipulación de objetos, que son instancias de clases. Las clases son plantillas que definen la estructura y el comportamiento de los objetos.

En RStudio, el sistema de clases de los objetos proporciona algunos de los mecanismos de la programación orientada a objetos, como el despacho de métodos y la herencia. El método es la implementación de un algoritmo que representa una operación o función que un objeto realiza. El conjunto de métodos de un objeto determina su comportamiento.

En R, el despacho de métodos implica examinar la clase de los argumentos de una función para decidir (despachar) la versión adecuada para los objetos de esa clase. No todas las funciones de R tienen despacho de métodos. Aquellas que lo tienen se llaman funciones genéricas. Las clases son creadas utilizando paquetes específicos, como “S3” o “S4”, que proporcionan un conjunto de métodos y atributos para describir cómo los objetos de esa clase se comportan y almacenan datos.

Por otro lado, la programación orientada a objetos (POO) en Python es un paradigma de programación que se basa en la idea de que los datos y las operaciones que se pueden realizar con esos datos se agrupan en objetos. En Python, todo es un objeto, lo que incluye números, cadenas, listas y, por supuesto, objetos que creamos a partir de clases definidas por el usuario.

Ambos enfoques, ya sea en RStudio o en Python, permiten organizar y estructurar el código de manera eficiente, fomentando la reutilización, la modularidad y la creación de código más claro y mantenible. La elección entre uno u otro dependerá de las necesidades y preferencias del desarrollador y del contexto de desarrollo.

1.5.1 Clases y Objetos

En POO, una clase es una plantilla o un plano para crear objetos. Define las propiedades (atributos) y los comportamientos (métodos) que los objetos de esa clase tendrán. Por ejemplo, podríamos tener una clase “Coche” que defina cómo se ven y cómo funcionan todos los coches.

Un objeto es una instancia de una clase. Cuando creas un objeto, estás creando una instancia de esa clase con sus propias propiedades y métodos.

1.5.2 Atributos

Los atributos son variables que almacenan datos relacionados con el objeto. Por ejemplo, un objeto de la clase “Coche” podría tener atributos como “color,” “modelo,” y “velocidad.”

1.5.3 Métodos

Los métodos son funciones que definen el comportamiento de un objeto. Por ejemplo, un objeto de la clase “Coche” podría tener métodos como “arrancar,” “detenerse,” y “acelerar.”

1.5.4 Encapsulación

La encapsulación es el concepto de agrupar los atributos y métodos relacionados en una clase y ocultar los detalles de implementación al usuario. En Python, se utiliza una convención que los atributos que comienzan con un guion bajo (por ejemplo, _atributo) son considerados como privados y no deberían modificarse directamente desde fuera de la clase.

1.5.5 Herencia

La herencia es un mecanismo que permite que una clase (llamada subclase o clase hija) herede atributos y métodos de otra clase (llamada clase base o clase padre). Esto fomenta la reutilización de código y permite crear nuevas clases basadas en clases existentes.

1.5.6 Polimorfismo

El polimorfismo permite que diferentes clases tengan métodos con el mismo nombre, pero que se comporten de manera diferente. Esto facilita el manejo de objetos de diferentes clases de manera uniforme.

1.5.7 Instanciación

La instanciación es el proceso de crear un objeto a partir de una clase. En Python, puedes instanciar un objeto simplemente llamando al nombre de la clase como si fuera una función.

1.5.8 Ejemplo

class Coche:
    def __init__(self, color, modelo):
        self.color = color
        self.modelo = modelo
        self.velocidad = 0

    def acelerar(self):
        self.velocidad += 10

    def frenar(self):
        self.velocidad -= 10

mi_coche = Coche("Rojo", "Sedán")
mi_coche.acelerar()
print(f"Mi coche es de color {mi_coche.color}, modelo {mi_coche.modelo}, y va a {mi_coche.velocidad} km/h.")
Mi coche es de color Rojo, modelo Sedán, y va a 10 km/h.