class("Hello world")[1] "character"
Porlles Castillo Sharif Snyder
Vargas Magallanes Andersson
Chuqui Diaz Gianpier Genaro
Pilco Valvas Jordan Joel
Cusi Ccaihuari Diego Oswaldo
R es un lenguaje de programación y entorno de software de código abierto diseñado específicamente para estadísticas y análisis de datos. Fue creado en 1995 por Ross Ihaka y Robert Gentleman en la Universidad de Auckland, Nueva Zelanda. Se caracteriza por su facilidad para manejar y analizar datos estadísticos, la capacidad de crear gráficos, la flexibilidad con la que cuenta, ser un IDE, etc.
Un entorno de desarrollo integrado (IDE) es un aplicación de tipo software que combina en un solo lugar todas las herramientas necesarias para realizar un proyecto de desarrollo de software, así ayudando a los programadores a desarrollar código de software de manera eficiente. Aumenta la productividad de los desarrolladores al combinar capacidades como editar, crear, probar y empaquetar software en una aplicación fácil de usar.
Con esta breve explicación de un IDE, podemos hablar de R-Studio, es un entorno de desarrollo integrado (IDE) para el lenguaje de programación R, dedicado a la computación estadística y gráficos. Incluye una consola, editor de sintaxis que apoya la ejecución de código, así como herramientas para el trazado, la depuración y la gestión del espacio de trabajo.
Editor de código fuente:
El resaltado de sintaxis, auto completado de código, sangría inteligente y salto rápido a las funciones definidas asi como ejecutar código R directamente desde el editor de código fuente.
Colaboración:
Documentación y soporte integrado con una administración sencilla de múltiples directorios de trabajo mediante proyectos y con navegación en espacios de trabajo y visor de datos.
Potente autoría y depuración:
Depurador interactivo para diagnosticar y corregir los errores rápidamente con ayuda de herramientas de desarrollo extensas. Incluye autoría con Sweave y R Markdown.
La Programación Orientada a Objetos (POO) Es un paradigma de programación ampliamente utilizado que se basa en la organización de datos y funcionalidades en unidades llamadas “objetos”. En R, un lenguaje conocido por su enfoque en el análisis de datos y estadísticas, la POO ofrece una forma eficiente y estructurada de gestionar y manipular datos. Este trabajo de investigación explora en profundidad los conceptos de la POO en R, incluyendo la definición de clases, la creación de objetos y la implementación de métodos. Además, se presenta un ejemplo práctico de cómo aplicar estos conceptos en un contexto real.
La POO en R se rige por los siguientes principios:
ClaseUna clase es una plantilla que define la estructura de un objeto, especificando los atributos y métodos que contendrá. Las clases en R se crean utilizando la función setClass().
Objeto: Un objeto es una instancia de una clase y contiene datos específicos para ese objeto. Los objetos se crean mediante la función new().
MétodoUn método es una función asociada a una clase que define el comportamiento de los objetos de esa clase. Los métodos en R se definen utilizando la función setMethod().
Se refiere al conjunto de operaciones destinadas a la creación, modificación y manipulación de diversos tipos de datos. Esto abarca desde la asignación de valores a variables, hasta la creación de estructuras de datos como vectores, matrices, listas y data frames. Adicionalmente, implica llevar a cabo operaciones y aplicar funciones específicas para manipular estos objetos de manera efectiva.
Las clases de objetos en Rstudio nos ayudan a clasificar nuestro objeto, ya sea caracter, numérico, entero, complejo o lógico (TRUE o FALSE). Algunos ejemplos de clases son:
Carácter
class("Hello world")[1] "character"
Numérico:
class(5)[1] "numeric"
Lógico
class(TRUE)[1] "logical"
El objeto, es el concepto principal sobre el cual se fundamenta la tecnología orientada a objetos. El objeto puede almacenar y visualizarse como una entidad que posee atributos y efectúa acciones. Ejemplos de objetos en R incluyen las funciones, creación de objetos asignando valores a variables y Symbols.
# creacion de objetos
# Asignacion de una variable
variable <- 42
vector <- c(1.5, 2.5, 3.5, 4.5, 5.5)
Datos <- data.frame(nombre = c("Pedro", "Jairo", "Luana"), edad = c(15, 19, 22))# creacion de objetos
# Funcion
funcion <- function(x,y) {
x + y
}
funcion(3,1)[1] 4
# creacion de objetos
# Symbols
x <- 5
x[1] 5
a <- 6
a[1] 6
Los vectores son colecciones de datos del mismo tipo, es una estructura homogenea, pueden estar formados por 1 dato o varios datos. Son de los elementos mas basicos del R y, posee clases de vectores de acuerdo a la clase de datos que posean
#Ejemplos con vectores
edades <- c(15, 19, 22, 30, 33, 20)
Gimnasio <- c(TRUE, FALSE, FALSE, FALSE, TRUE, TRUE)Es un vector multidimensional, como los vectores pueden contener datos de una sola clase, esta organizado en filas y columnas.
#Ejemplos con matriz
matriz_1 <- matrix(data=1:15, nrow = 3, ncol = 5, byrow = FALSE)
matriz_1 [,1] [,2] [,3] [,4] [,5]
[1,] 1 4 7 10 13
[2,] 2 5 8 11 14
[3,] 3 6 9 12 15
matriz_2 <- matrix(c(1,2,3,4,5,6,7,8,9,10), nrow = 4, ncol = 5, byrow = FALSE)
matriz_2 [,1] [,2] [,3] [,4] [,5]
[1,] 1 5 9 3 7
[2,] 2 6 10 4 8
[3,] 3 7 1 5 9
[4,] 4 8 2 6 10
Es una matriz de varias dimensiones con informacion numerica, alfanumerica o logica. Se emplean para representar datos multidimensinales de un único tipo, al igual que las matrices y los vectores.
#Ejemplos con arreglos
arreglo_1 <- array(data = letters[1:24], dim = c(3,4,2))
arreglo_1, , 1
[,1] [,2] [,3] [,4]
[1,] "a" "d" "g" "j"
[2,] "b" "e" "h" "k"
[3,] "c" "f" "i" "l"
, , 2
[,1] [,2] [,3] [,4]
[1,] "m" "p" "s" "v"
[2,] "n" "q" "t" "w"
[3,] "o" "r" "u" "x"
Consiste en los espacios o tabulaciones que se agregan al principio de una línea de código para definir su estructura y jerarquía en un programa. Esto ayuda a la legibilidad y entendimiento del código. En R no tiene un papel tan importante como por ejemplo en Python, en cambio, se usan los “{ }”.
Ejemplo:
x=9
if (x>10) {
print("La condición es verdadera")
} else {
print("La condición es falsa")
}[1] "La condición es falsa"
Usaremos if (si) cuando deseamos que una operación se ejecute únicamente cuando una condición se cumple y else (de otro modo), para indicarle a R qué hacer en caso que la condición “if” no se cumpla.
La forma o modelo para un “if”:
if(Condición) {
operaciones_si_la_condición_es_TRUE
}
Ejemplo del modelo “if”:
# Se cumple la condición y se muestra "La desigualdad es verdadera"
if(20 > 14) {
"La desigualdad es verdadera"
}[1] "La desigualdad es verdadera"
# No se cumple la condición y no pasa nada
if(9 > 13) {
"La desigualdad es verdadera"
}La forma o modelo para un “if” con “else”:
if(condición) {
operaciones_si_la_condición_es_TRUE
} else {
operaciones_si_la_condición_es_FALSE
}
Ejemplo para el modelo “if” con “else”:
# Se cumple la condición y se muestra "La desigualdad es verdadera"
if(20 > 14) {
"La desigualdad es verdadera"
} else {
"La desigualdad es falsa"
}[1] "La desigualdad es verdadera"
# No se cumple la condición y se muestra "La desigualdad es falsa"
if(9 > 13) {
"La desigualdad es verdadera"
} else {
"La desigualdad es falsa"
}[1] "La desigualdad es falsa"
En el lenguaje de programación R, el condicional ifelse es una herramienta poderosa que permite realizar evaluaciones condicionales y aplicar diferentes acciones según si se cumple o no una condición. En este documento, vamos a explorar en detalle cómo funciona ifelse y cómo se utiliza en R.
Estructura Básica
La expresión ifelse en R tiene la siguiente estructura básica:
ifelse(condición, valor_si_cierto, valor_si_falso)
Ejemplo:
# Crear un vector de ingresos de venta de productos
ingresos <- c(1200, 450, 750, 300, 1100)
# Aplicar la clasificación utilizando ifelse
categorías <- ifelse(ingresos >= 1000, "Categoría A",
ifelse(ingresos >= 500, "Categoría B", "Categoría C"))
# Mostrar el resultado
resultados <- data.frame(Producto = 1:length(ingresos), Ingresos = ingresos, Categoría = categorías)
print(resultados) Producto Ingresos Categoría
1 1 1200 Categoría A
2 2 450 Categoría C
3 3 750 Categoría B
4 4 300 Categoría C
5 5 1100 Categoría A
En R, la expresión else if es una extensión de la estructura condicional if-else, que permite evaluar múltiples condiciones en orden, ejecutando el bloque de código vinculado a la primera condición que sea verdadera. En caso de que ninguna condición sea verdadera, se ejecuta el bloque de código asociado al else (si está presente).
Ejemplo:
numero <- 0
if (numero > 0 ) {
mensaje <- "El número es positivo"
} else if (numero == 0) {
mensaje <- "El número es 0"
} else {
mensaje <- "El número es negativo"
}
cat("Tu número es:", numero, "\n")Tu número es: 0
cat("Resultado:", mensaje, "\n")Resultado: El número es 0
Es un operador lógico que permite trabajar con valores de tipo booleano. El operador “or” devuelve “True” cuando al menos uno de los elementos es verdadero. Es decir, evalúa si el valor a la izquierda o el de la derecha son verdaderos o falsos. En R, “or” se expresa mediante el símbolo “|”.
Ejemplo:
# Ejemplo 1
x <- 5
y <- 10
resultado <- (x > 3) | (y < 5)
print(resultado)[1] TRUE
El operador and, se usa para referirse a la evaluacion de varias condiciones a las que se sujeta, esto implica que esas condiciones deben ser verdaderas para que se pueda cumplir, and tambien puede ser usado como & o &&, aunque la segunda expresion se genera solo si la primera condicion es verdadera, sin evaluar la segunda condicion.
x <- 5
y <- 13
resultado <- (x > 2) & (y < 15)
resultado[1] TRUE
x <- 2
y <- 20
resultado <- (x > 1) && (y < 15)
resultado[1] FALSE
Es una estructura de control que facilita la repetición de un conjunto de instrucciones según una condición específica. Esta herramienta es esencial en programación, ya que automatiza tareas que requieren ejecutarse múltiples veces. R proporciona distintos tipos de bucles, como el bucle for, que itera sobre un conjunto de valores, el bucle while, que repite un bloque de código mientras se cumple una condición, y el bucle repeat, que crea una iteración continua hasta que se satisface una condición de salida.
Los bucles son una parte fundamental de la programación en R y se utilizan para realizar tareas repetitivas de manera eficiente. En este trabajo, exploraremos los bucles en R y cómo se construyen.
En programación, un bucle es una estructura que permite ejecutar un conjunto de instrucciones varias veces. Esto es especialmente útil cuando tenemos que realizar la misma operación en múltiples elementos de un conjunto de datos. R ofrece varios tipos de bucles, pero los más comunes son el bucle for y el bucle while.
Ejemplo de bucle for
El bucle for se utiliza cuando se conoce de antemano cuántas veces se debe repetir una operación. Su estructura básica se ve así:
for (variable in secuencia) {
# Código a ejecutar en cada iteración
}
La estructura for nos permite ejecutar un bucle (loop), realizando una operación para cada elemento de un conjunto de datos.
Estructura:
for(elemento in objeto) {
operacion_con_elemento
}
En la parte que corresponde al “elemento” la podemos llamar como nosotros deseemos, pero la parte que corresponde al “objeto” debe ser el nombre de un objeto definido.
Ejemplo:
# Creando un bucle "for" del 1 al 10
for(numero in 1:10 ){
print(numero)
}[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
Este es un tipo de bucle que ocurre mientras una condición es verdadera. La operación se realiza hasta que se se llega a cumplir un criterio previamente establecido.
Estructura:
while(condicion) {
operaciones
}
Ejemplo:
umbral <- 6
valor <- 0
while(valor < umbral) {
print("Hola")
valor <- valor + 1
}[1] "Hola"
[1] "Hola"
[1] "Hola"
[1] "Hola"
[1] "Hola"
[1] "Hola"
Este es un bucle que se llevará a cabo el número de veces que especifiquemos, usando un break para detenerse. repeat asegura que las operaciones que contiene sean iteradas al menos en una ocasión.
Estructura:
repeat {
operaciones
un_break_para_detener
}
Ejemplo:
i <- 0
repeat{
print(i)
i <- i + 1
if(i == 8) {
break
}
}[1] 0
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
Dentro de los bucles, las declaraciones de control o estructuras de control, nos permiten realizar construcciones para controlar la manera en la que se realizará el bucle, esto debido a las diversas condiciones que se pueden colocar en un código. Algunas de estas condiciones son:
if (si) es utilizada para condicionar a la ejecución de nuestro bucle a cada iteración dada, esta declaración de control se utiliza junto con el else (de otro modo) que genera otra acción si en caso no se cumple la primera condición en nuestro bucle. Ejemplos:
for (l in 1:20) {
if (l %% 3 == 0) {
cat(l, "es un número múltiplo de 3\n")
} else {
cat(l, "no es un número múltiplo de 3\n")
}
}1 no es un número múltiplo de 3
2 no es un número múltiplo de 3
3 es un número múltiplo de 3
4 no es un número múltiplo de 3
5 no es un número múltiplo de 3
6 es un número múltiplo de 3
7 no es un número múltiplo de 3
8 no es un número múltiplo de 3
9 es un número múltiplo de 3
10 no es un número múltiplo de 3
11 no es un número múltiplo de 3
12 es un número múltiplo de 3
13 no es un número múltiplo de 3
14 no es un número múltiplo de 3
15 es un número múltiplo de 3
16 no es un número múltiplo de 3
17 no es un número múltiplo de 3
18 es un número múltiplo de 3
19 no es un número múltiplo de 3
20 no es un número múltiplo de 3
Es una palabra reservada en Rstudio. La declaración de control break nos permite interrumpir y finalizar un bucle al tener una condición que sea TRUE. Ejemplo:
i <- 0
while (i <= 14) {
if (i == 8) {
cat("Se alcanzó el valor 8. \n")
break
}
cat("Valor de i:", i, "\n")
i <- i +3
}Valor de i: 0
Valor de i: 3
Valor de i: 6
Valor de i: 9
Valor de i: 12
Nota: break mayormente es usado en un bucle repeat, esto para que el bucle no sea infinito. Ejemplo
numero <- 7
contador <- 1
repeat {
if (contador == numero) {
cat("Número encontrado: ", numero, "\n")
break
}
cat("Probando con", contador, "Número no encontrado \n")
contador <- contador + 1
}Probando con 1 Número no encontrado
Probando con 2 Número no encontrado
Probando con 3 Número no encontrado
Probando con 4 Número no encontrado
Probando con 5 Número no encontrado
Probando con 6 Número no encontrado
Número encontrado: 7
Al igual que break, next es una palabra reservada, esta declaración de control nos permite saltar a la siguiente iteración al cumplirse nuestra condición. Ejemplo
i <- 1
repeat {
if (i > 20) {
break
}
if (i %% 2 == 0) {
i <- i + 1
next
}
cat(i, "\n")
i <- i + 1
}1
3
5
7
9
11
13
15
17
19
Una conclusión sobre R Studio es que es una herramienta altamente eficaz y popular para la programación y análisis de datos en el lenguaje de programación R. Ofrece una interfaz de usuario amigable que integra una amplia gama de funciones, desde la edición de código hasta la visualización de resultados, lo que lo convierte en una opción preferida por los científicos de datos, analistas y estadísticos.
La programación Orientada a Objetos mediante el lenguaje R es una herramienta con un potencial que puede ser utilizado en distintos campos de la Ciencia, que nos facilita en gran escala diversos procesos que tomaron un tiempo significativo ante el contexto actual que se ve influenciado el mundo un ejemplo claro de cómo optimizar situaciones sería los bucles que son una herramienta esencial en el programa for y while son los más utilizados y cada uno tiene su lugar en diferentes situaciones desde cotidianas hasta empresariales.
La manipulación de objetos no es solo una tarea técnica, sino la base misma del poder analítico en este entorno. Es el arte de transformar datos en información significativa, y dominarlo es la clave para desbloquear el potencial completo de R en el análisis de datos.
Los operadores lógicos son una herramienta poderosa para resolver problemas y tomar decisiones en la programación. Nos permiten automatizar tareas complejas y controlar el flujo de un programa de manera efectiva. La habilidad para trabajar con operadores lógicos es esencial para cualquier programador, ya que nos permite transformar nuestras ideas en código funcional. Al dominar estos conceptos, estamos un paso más cerca de aprovechar el poder de la programación para resolver una amplia variedad de desafíos.
El uso de los bucles puede presentar problemas por los tipos que hay, bucles como el repeat pueden llegar a ser infinitos, si no se utiliza el break para ejecutar el fin del bucle. Aun así, la facilidad del uso del bucle junto a sus declaraciones de control, lo hacen flexible al momento de realizar un código.
Existen tres tipos principales de bucles: for, while y repeat. También se pueden utilizar break y next para controlar el flujo en un bucle. Es importante considerar la vectorización y las funciones de alto nivel en lugar de depender en exceso de los bucles. Esto promueve un código más eficiente y legible.