I) Fundamentos del programa

¿Qué es R?

R es un lenguaje de programación y un entorno de software ampliamente utilizado para estadísticas y análisis de datos. Fue desarrollado por Ross Ihaka y Robert Gentleman en la Universidad de Auckland, Nueva Zelanda, y se lanzó por primera vez en 1995. R se ha convertido en una herramienta esencial en la estadística y la ciencia de datos debido a su flexibilidad y capacidad para manipular, visualizar y analizar datos de diversas formas.

¿Que es un IDE-RStudio?

RStudio es un entorno de desarrollo integrado (IDE, por sus siglas en inglés) diseñado específicamente para programadores y analistas de datos que trabajan con el lenguaje de programación R. Algunas de las características clave de RStudio incluyen: Editor de código, Consola interactiva, Administración de proyectos, Visualización de datos, etc. ## ¿Qué es un IDE – Colab?

Un “IDE” se refiere a un “Entorno de Desarrollo Integrado” (Integrated Development Environment, en inglés), que es un software que proporciona herramientas y funciones para facilitar el desarrollo de software, como programación, depuración y pruebas. Colab, o Google Colab, es un servicio en la nube ofrecido por Google que proporciona un entorno de desarrollo integrado en línea para la programación en Python.

¿Qué es un IDE – Jupyter?

Un IDE (Entorno de Desarrollo Integrado, por sus siglas en inglés, Integrated Development Environment) Jupyter es una herramienta de desarrollo que combina características de un entorno de programación interactivo y un entorno de edición de documentos. Jupyter es un proyecto de código abierto que proporciona un entorno interactivo para escribir código en varios lenguajes de programación, pero es más conocido por su soporte para lenguaje Python. Las características principales de un IDE Jupyter incluyen:

Cuadernos Jupyter, soporte para varios lenguajes, interactividad y visualización de datos.

¿Qué es un IDE – Spyder?

Spyder es un entorno de desarrollo integrado (IDE) diseñado específicamente para programar en Python. El nombre “Spyder” proviene de las palabras “Scientific PYthon Development EnviRonment” (Entorno de Desarrollo Científico de Python, en español). Está orientado principalmente a científicos, ingenieros y analistas de datos que trabajan con Python para tareas relacionadas con la ciencia de datos, análisis numérico y computación científica.

Las características principales de Spyder incluyen: Editor de código, consola interactiva, explorador de variables, depuración y soporte para la creación de gráficos.

Programacion Orientada a Objetos (POO)

Es un paradigma de programación que se basa en el concepto de “objetos”. En la POO, los objetos son instancias de clases, que son plantillas o moldes que definen la estructura y el comportamiento de los objetos. Este enfoque se utiliza para organizar y modelar sistemas de software complejos y para abstraer la realidad en un modelo más manejable y comprensible.

Manipulacion de objetos

¿Que es manipulación de objetos?

La manipulación de objetos es un concepto fundamental en la programación orientada a objetos y se utiliza para modelar objetos del mundo real en software, lo que permite organizar y modularizar el código de manera más efectiva.

Definir y ejemplificar clase, objetos, matrices, arreglos, vectores

Clase

Una clase es una plantilla o un modelo a partir del cual se crean objetos. Representa un conjunto de atributos (variables miembro) y métodos (funciones miembro) que describen las propiedades y el comportamiento de los objetos que se crearán a partir de ella.

Objeto

Un objeto es una entidad que se crea a partir de una clase específica y tiene su propia identidad y característica, los objetos son instancias individuales de una clase que encapsulan datos y comportamientos.

# Definir una clase llamada "Persona"
setClass("Persona", 
  slots = c(nombre = "character", edad = "numeric"),
  prototype = list(nombre = "John Doe", edad = 30)
)

# Crear un objeto de la clase "Persona"
mi_persona <- new("Persona", nombre = "Alice", edad = 25)

# Acceder a los atributos de la clase
print(mi_persona@nombre)
## [1] "Alice"
print(mi_persona@edad)
## [1] 25

Matrices

En R, una matriz es una estructura de datos bidimensional que consta de filas y columnas. Cada elemento de una matriz está en una ubicación específica definida por su fila y columna. Las matrices son especialmente útiles para almacenar datos numéricos o valores de un solo tipo.

# Crear una matriz de 3x3
matriz <- matrix(1:9, nrow = 3, ncol = 3)
print(matriz)
##      [,1] [,2] [,3]
## [1,]    1    4    7
## [2,]    2    5    8
## [3,]    3    6    9

Arreglos

En R, un “arreglo” es una estructura de datos multidimensional que puede contener elementos del mismo tipo de datos. Los arreglos son similares a las matrices, pero pueden tener más de dos dimensiones, lo que les permite almacenar datos en una estructura con más de dos ejes. Los arreglos se utilizan para representar datos multidimensionales, como tensores en álgebra lineal o datos volumétricos en imágenes tridimensionales.

# Crear un arreglo tridimensional de tamaño 2x3x4
mi_arreglo <- array(1:24, dim = c(2, 3, 4))
print(mi_arreglo)
## , , 1
## 
##      [,1] [,2] [,3]
## [1,]    1    3    5
## [2,]    2    4    6
## 
## , , 2
## 
##      [,1] [,2] [,3]
## [1,]    7    9   11
## [2,]    8   10   12
## 
## , , 3
## 
##      [,1] [,2] [,3]
## [1,]   13   15   17
## [2,]   14   16   18
## 
## , , 4
## 
##      [,1] [,2] [,3]
## [1,]   19   21   23
## [2,]   20   22   24

Vectores

En R, un “vector” es una estructura de datos que se utiliza para almacenar un conjunto de elementos del mismo tipo de datos. Los vectores son una de las estructuras de datos fundamentales en R y se pueden utilizar para representar datos unidimensionales. Pueden contener elementos numéricos, de caracteres, lógicos o de otros tipos de datos.

# Crear un vector numérico
mi_vector <- c(1, 2, 3, 4, 5)
print(mi_vector)
## [1] 1 2 3 4 5
# Crear un vector de caracteres
nombres <- c("Juan", "María", "Pedro")
print(nombres)
## [1] "Juan"  "María" "Pedro"
# Crear un vector lógico
logico <- c(TRUE, FALSE, TRUE, TRUE)
print(logico)
## [1]  TRUE FALSE  TRUE  TRUE
# Generar una secuencia de números
secuencia <- seq(1, 10, by = 2)
print(secuencia)
## [1] 1 3 5 7 9

¿Que es la identacion?

En R, la identación se refiere a la práctica de estructurar y formatear tu código mediante la utilización de espacios o tabulaciones para indicar bloques de código anidados. Aunque R es un lenguaje que no es estrictamente dependiente de la identación como Python, es una buena práctica utilizar la identación para hacer que tu código sea más legible y fácil de entender.

for (i in 1:5) {
  print(i)
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5

Expresiones condicionales

if

Una expresión condicional “if” es una estructura de control utilizada en programación para tomar decisiones basadas en una condición dada. La condición es una expresión que se evalúa como verdadera (TRUE) o falsa (FALSE). Dependiendo del resultado de la evaluación de la condición, se ejecutará un bloque de código específico.

x <- 10

if (x > 5) {
  print("x es mayor que 5")
}
## [1] "x es mayor que 5"

if-else

En R, puedes usar la estructura if-else para tomar decisiones basadas en una condición y proporcionar un curso de acción alternativo si la condición no se cumple

x <- 3

if (x > 5) {
  print("x es mayor que 5")
} else {
  print("x no es mayor que 5")
}
## [1] "x no es mayor que 5"

Operadores

or

En R, el operador OR se utiliza para combinar dos o más expresiones lógicas y determinar si al menos una de ellas es verdadera. El operador OR en R se representa con el símbolo ‘|’. Puedes usarlo en expresiones condicionales o para realizar filtrado de datos en un marco de datos.

x <- 3
y <- 7

if (x > 5 | y < 10) {
  print("Al menos una de las condiciones es verdadera")
} else {
  print("Ninguna de las condiciones es verdadera")
}
## [1] "Al menos una de las condiciones es verdadera"

and

En R, el operador AND se utiliza para combinar dos o más expresiones lógicas y determinar si todas ellas son verdaderas. El operador AND en R se representa con el símbolo &. Puedes usarlo en expresiones condicionales o para realizar filtrado de datos en un marco de datos.

x <- 3
y <- 7

if (x > 2 & y < 10) {
  print("Ambas condiciones son verdaderas")
} else {
  print("Al menos una de las condiciones es falsa")
}
## [1] "Ambas condiciones son verdaderas"

not

En R, el operador “NOT” se utiliza para negar una expresión lógica, es decir, cambiar una condición verdadera a falsa y una condición falsa a verdadera. El operador “NOT” en R se representa con el símbolo !.

x <- 3

if (!(x > 5)) {
  print("x no es mayor que 5")
} else {
  print("x es mayor que 5")
}
## [1] "x no es mayor que 5"

Bucles

¿Que es un bucle?

En programación, los bucles son estructuras que te permiten ejecutar un conjunto de instrucciones repetidamente. Los bucles son especialmente útiles cuando necesitas realizar una tarea o procesamiento de datos de manera repetitiva. En R, al igual que en muchos otros lenguajes de programación, existen dos tipos principales de bucles: el bucle “for” y el bucle “while”.

Tipos de bucles

Bucle for

El bucle for se utiliza para iterar sobre una secuencia de elementos y ejecutar un bloque de código en cada iteración ## Bucle while El bucle while se utiliza para ejecutar un bloque de código mientras una condición dada sea verdadera. ## Bucle repeat El bucle repeat se utiliza para ejecutar un bloque de código de forma indefinida hasta que se incluya una sentencia break para salir del bucle

Construccion de bucles

Bucle for

for (variable in secuencia) {
  # Código a ejecutar en cada iteración
}
for (i in 1:5) {
  print(i)
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5

Bucle while

contador <- 1
while (contador <= 5) {
  print(contador)
  contador <- contador + 1
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5

Bucle repeat

contador <- 1
repeat {
  print(contador)
  contador <- contador + 1
  if (contador > 5) {
    break
  }
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5

Declaracion de control

En R, las estructuras de control te permiten tomar decisiones y controlar el flujo de ejecución de tu programa. Las principales estructuras de control en R incluyen: ## break Se utiliza para salir de un bucle.

for (i in 1:10) {
  if (i == 5) {
    break
  }
  print(i)
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4

return

Se utiliza para salir de una función y devolver un valor.

mi_funcion <- function(x, y) {
  resultado <- x + y
  return(resultado)
}

# Llama a la función y almacena el resultado en una variable
resultado_final <- mi_funcion(3, 5)

# Imprime el resultado
print(resultado_final)
## [1] 8

Conclusiones de R

R es un lenguaje de programacion que se usa mucho en el analisis de datos, una herramienta que toda persona que se dedica a la estadistica debe aprender, nos ayuda a analizar una gran cantidad de datos, en R al igual que en python se pueden hacer cosas similares y a final de cuentas para nosotros los estudiantes de estadistica el curso de R sera vital para futuros cursos como el curso de Inferencia Estadistica.