R es lenguaje de programación multiplataforma y un entorno de software libre y gratuito para computación estadística y gráficos. R es parte del sistema GNU y se distribuye bajo la licencia GNU; compila y se ejecuta en una amplia variedad de plataformas UNIX, Windows y MacOS.
• Página oficial del proyecto R: https://www.r-project.org/
• R fue inicialmente creado por los investigadores Ross Ihaka y Robert Gentleman de la Universidad de Auckland, Nueva Zelanda, en 1993.
• A partir de 1997 el desarrollo del código fuente (o base-R) de R es llevado por un grupo de programadores conocido como “The R-core team”.
• Lenguaje top e intuitivo: hoy por hoy es de los mejores programas para análisis estadístico y ciencia de datos en general. Se encuentra ubicado en el top 20 de los lenguajes de programación más populares. Véase el TIOBE Index y para una discusión más detallada sobre los mejores lenguajes de programación para la Ciencia de Datos, vea Top programming languages for data scientists in 2022.
• Software libre y gratuito: existe un repositorio oficial de paquetes: Comprehensive R Archive Network o CRAN y otros repositorios completarios en Github, desde donde pueden descargarse de manera totalmente gratuita.
• Ampliamente extensible: R es un proyecto colaborativo y abierto, esto permite que los usuarios pueden publicar paquetes que extienden los métodos y capacidades de su configuración básica.
• Comunidad colaborativa y prolífica : existe una abundancia de paquetes y comunidad de usuarios que comparten sus conocimientos, esto facilita la documentación y resolución de dudas.
RStudio es un entorno de desarrollo integrado (IDE, por sus siglas en inglés) para R y Python, con una consola, un editor de resaltado de sintaxis que admite la ejecución directa de código y herramientas para el ploteo, el historial, la depuración y la gestión del espacio de trabajo.
• Página oficial de RStudio: https://www.rstudio.com/.
• RStudio fue lanzado por primera vez el 28 de febrero de 2011 por una
empresa con sede en Boston.
• La versión de escritorio RStudio Desktop de RStudio es libre y
gratuita.
• Dado que la interfaz de usuario (GUI, Graphical User Interface) de
R no es muy amigable ni versátil, RStudio nos permitirá interactuar con
R de forma más amigable, además de facilitar muchas de las tareas de
programación y análisis de datos en R. • RStudio facilita trabajar con R
pues incorpora servicios integrales tales como:
– el resaltado de sintaxis,
– autocompletado de código y sangría inteligente,
– ejecutar código R directamente desde el editor de código fuente,
– documentación y soporte integrado,
– administración sencilla de múltiples directorios de trabajo mediante
proyectos.
– visor de datos,
– depurador, detección y corrección de errores, etc
El entorno de desarrollo integrado conocido como RStudio está
dividido en cuatro componentes principales:
• una consola.
• un editor de sintaxis que apoya la ejecución de código.
• un panel para la importación de datos, historia y conecciones a fuentes de datos.
• un panel para la gestión de archivos, paquetes, plots y ayuda.
RStudio Cloud que es un entorno de desarrollo integrado (IDE) para el
lenguaje de programación R disponible totalmente en la nube.
Características de RStudio Cloud:
• RStudio Cloud, al igual que el Rstudio de escritorio, incluye una consola, editor de scripts que apoya la ejecución de código, así como herramientas para el ploteo, la depuración y la gestión del espacio de trabajo, el cual puede ser compartido con otros colaboradores de forma online.
• No se necesita ninguna instalación ni del IDE ni del lenguaje R, todo se maneja de forma online.
• La interfaz de desarrollo RStudio Cloud y su gestor de proyectos es totalmente gratuita.
• Página web: https://rstudio.cloud/.
Google Colab, o “Colaboratory” o simplemente Colab es un entorno gratuito basado en Jupyter notebook que se ejecuta en los servidores de la nube de Google. Colab te permite escribir y ejecutar código de Python (o de R) en tu navegador:
• Sin configuración requerida
• Acceso gratuito a GPU
• Facilidad para compartir.
Seas estudiante, científico de datos o investigador de IA, Colab facilita tu trabajo. Mira este video introductorio sobre Colab para obtener más información.
• Los notebooks de Colab te permiten combinar código ejecutable y texto enriquecido en un único documento, junto con imágenes, HTML, LaTeX y mucho más.
• Para acceder a este servicio lo primero que se requiere es una cuenta en Gmail
• Los notebooks que crees en Colab se almacenan en tu cuenta de Google Drive.
• Puedes compartir fácilmente los notebooks de Colab con amigos o compañeros de trabajo para que realicen comentarios o los editen.
• Para crear un nuevo notebook en Colab en el que se pueda ejecutar código R tienes que ingresar con el siguiente enlace: https://colab.to/r
Primero tienes que instalar R y posteriormente instalas RStudio. Una vez que tienes instalado los dos, ya no abres R, sólo necesitas abrir RStudio.
Los siguientes enlaces te proporcionan buena información para el aprendizaje de R:
R for Data Science
R-bloggers
Quick-R
Cookbook for R
R-Coder
Igualmente se recomiendan ampliamente los foros en Stack Overflow
Al iniciar nuestro trabajo en RStudio se recomienda establecer el espacio de trabajo, es decir, fijar una carpeta en la que estaremos guardando todos los ficheros que generemos:
La forma más sencilla de hacer esto es con el siguiente código:
setwd("/Users/javier/Desktop")
Lo que hace la línea de código anterior fue indicar a R la ruta donde queremos trabajar y la fijamos con la función setwd().
Otra forma de fijar el directorio de trabajo es usando el menú de RStudio: Session > Set Working Directory > Choose Directory…
Para asegurarte que has fijado el directorio de trabajo en la carpeta correcta, ejecuta el siguiente comando:
getwd() #Obtiene el camino a la carpeta fijada
## [1] "/Users/javier/Desktop"
Debes obtener la ruta o el path a la carpeta en donde fijamos nuestro directorio de trabajo.
Para ampliar los métodos, funcionalidades y las capacidades del programa R frecuentemente se tiene la necesidad de instalar y cargar paquetes adicionales. Hay varias formas de instalar un paquete en R:
Forma 1: usando la función install.packages(). El nombre del paquete que queremos instalar debe ir entre comillas.
#install.packages("ggplot2")
Una vez que instalas el paquete lo debes cargar usando la función library():
#library("ggplot2")
Forma 2: Para instalar un paquete determinado puedes hacer uso del menú de RStudio: Tools > Install packages
Forma 3: En el entorno de RStudio dirigirse a Packages/Install. Ver figura de abajo, se observan los paquetes que tenemos actualmente instalados y aquellos que se encuentran cargados.
Para
instalar y cargar paquetes de manera conjunta la manera más corta
posible es usando la función p_load() de paquete pacman.
#install.packages("pacman")
library("pacman")
p_load("ggplot2","dplyr","tidyr")
Las funciones de R base y aquellas que forman parte de algún paquete tienen un archivo de documentación. La docuemnetación describe qué hace la función, sus argumentos, detalles sobre las operaciones que realiza,los resultados que devuelve y algunos ejemplos de cómo usar la funciones.
Si eres nuevo en el lenguaje de programación R y te sientes perdido al comenzar, puedes llamar a la función help.start.
#help.start() # Se abrirá ayuda en formato HTML
Para solicitar ayuda sobre una función específica en R, escriba lo siguiente:
#help("plot")
O también puede escribir esto:
#?plot
Las viñetas o vignettes son largas guías de paquetes de R que describen su uso con amplias explicaciones y ejemplos más detallados que los de la documentación base, escritos en formato R Markdown. Nótese que muchos paquetes contienen viñetas, pero no todos. Puedes ver la lista completa de viñetas de tus paquetes de R instalados con la función vignette. Para ver la documentación del paquete ggplot2, tecleas
#vignette(package = "ggplot2")
Luego selccione la viñeta específica:
# Ejemplo:
#vignette("ggplot2-specs")
Recomiendo leer la siguiente fuente para más detalles sobre cómo pedir ayuda en R.
R puede usarse como una simple calculadora. Puedes hacer cálculo directamente en la consola o abrir un script y empezar a escribir tus operaciones. Pero para poder dominar a profundidad el lenguaje necesitamos estudiar sus características y funcionamiento, iniciemos con los tipos de datos presentes en R.
En el lenguaje R existen 5 distintos tipos de datos o clases “atómicas”, a saber:
| Nombre | Tipo de dato |
|---|---|
| Numero entero | Integer |
| Numero real decimal | Numeric |
| Numero complejo | Complex |
| Cadena de texto | Character |
| Logico | Logical |
En R la función class() nos permite conocer el tipo o clase de un objeto. También puedes usar las siguientes funciones lógicas para determinar el tipo o clase de un objeto en R:
| Funcion | Tipo |
|---|---|
| is.integer() | ¿Es entero? |
| is.numeric() | ¿Es real decimal? |
| is.character() | ¿Es cadena de characters? |
| is.logical() | ¿Es logico? |
| is.complex() | ¿Es complejo? |
| is.factor() | ¿Es variable categorica? |
| is.na() | ¿Es valor no disponible? |
| is.null() | ¿Es nulo? |
Estudiemos a detalle cada uno de los tipos básicos de datos presentes en R.
Los datos enteros representan números enteros, sin una parte decimal o
fraccionaria.
a=5L #así se especifica un valor entero
b=10L
c=a+b #suma de enteros
c
## [1] 15
#conocer la clas del objeto a
class(a)
## [1] "integer"
Los datos numéricos representan números que tiene una parte decimal o
fraccionaria. Los datos numéricos también son llamados doble o float
(flotantes).
#escribir un dato tipo numeric
a=4.25 #número decimal
b=6.25 #número decimal
c=a+b
c
## [1] 10.5
#conocer la clase del objeto
class(a)
## [1] "numeric"
Un dato es tipo complejo si es número con una parte real y una parte imaginaria.
#Crear un número complejo
z=3+4i
class(z)
## [1] "complex"
Hay varios comandos asociados con los números complejos:
#Parte real del número
Re(z)
## [1] 3
#Parte imaginaria del número
Im(z)
## [1] 4
#El módulo del número
Mod(z)
## [1] 5
#El número complejo conjugado
Conj(z)
## [1] 3-4i
Un dato tipo character representa texto y se escribe entre comillas,
simples o dobles. También se conocen como cadenas de texto, es decir,
secuencias de caracteres. Este es el tipo de datos más flexible de R,
pues una cadena de texto puede contener letras, números, espacios,
signos de puntuación y símbolos especiales.
#dato tipo character
a="Curso básico de R"
class(a)
## [1] "character"
Los datos de tipo lógico sólo tienen dos valores posibles: verdadero
(TRUE) y falso (FALSE). Representan si una condición o estado se cumple,
es verdadero, o no, es falso. Es el tipo de dato más restrictivo.
4<7
## [1] TRUE
La anterior operación se puede asignar un nombre
a=4<7
class(a)
## [1] "logical"
Un factor es un tipo de datos específico a R. Puede ser descrito como un dato numérico representado por una etiqueta. Cada una de las etiquetas o valores que puedes asumir un factor se conoce como nivel.
En R, usamos NA (significa Not Available) para representar
explícitamente datos perdidos, omitidos o que por alguna razón son
faltantes. También puede aparecer NA como resultado de una operación
realizada, pero que no tuvo éxito en su ejecución. . Cualquier operación
aritmética que involucre a un NA da por resultado un NA. Esto se aplica
también a los operadores lógicos y de comparación.
En R, usamos NULL para representar la ausencia de datos.
Los operadores de asignación permiten asignar datos a variables. Una vez
hecha la asignación puedes usar el nombre de la variable para realizar
operaciones con ella como si fueran los propios datos.
| Operador | Funcion |
|---|---|
| <- | Asigna un objeto a un variable |
| = | Asigna un objeto a un variable |
| -> | Asigna un objeto a un variable |
En R podemos tres operadores lógicos fundamentales, que son los
siguientes:
| Nombre | Operador | Descripcion |
|---|---|---|
| Conjuncion | a&b | será TRUE cuando ambas sean verdaderas |
| Disyuncion | a|b | será FALSE cuando las dos sean falsas |
| Negacion | !a | !TRUE=FALSE |
Los operadores aritméticos son la suma, la resta, el producto (*), la
división (/), la potenciación (ˆ), división entera %% retorna el
residuo; el producto interior %*%.
Los operadores de comparación son usados para hacer comparaciones y
siempre devuelven como resultado TRUE o FALSE (verdadero o falso,
respectivamente)
| Operadores | Comparacion |
|---|---|
| > | mayor estricto |
| >= | mayor o igual |
| < | menor estricto |
| <= | menor o igual |
| == | exactamente igual a |
| != | no es igual que |
¿Qué son las estructuras de datos en R?
Las estructuras de datos en R son objetos que almacenar nuestros conjuntos de datos, es decir, en un mismo objeto coleccionan varios valores. Estas estructuras tienen diversas características, como la dimensión y su heterogeneidad u homogeneidad respecto al tipo de objeto que las conforman.
Estructuras de datos homogéneas: son aquellas que se
conforman por objetos del mismo tipo
Estructuras de datos heterogéneas: son aquellas que se conforman por objetos de diferentes tipos
La siguiente tabla resume la información de las estructuras de datos
presentes en R:
| Estructura | Dimensiones | Homogenea | Heterogenea |
|---|---|---|---|
| Vector | 1 | Si | No |
| Matrices | 2 | Si | No |
| Data frame | 2 | No | Si |
| Tibbles | 2 | No | Si |
| Listas | n | No | Si |
Un vector es la estructura de dato más básica en R. Contiene elementos
de la misma clase. Se puede construir un vector de tipo numérico, lógico
o carácter.
Para introducir un vector en R se usa la función c(). La La letra c
significa "concatenar", y de hecho es un acrónimo para dicha
palabra.
Creamos un vector de la siguiente forma:
c(25,28,29) #vector numérico
## [1] 25 28 29
c("Emilio", "Javier", "Anto") #vector character
## [1] "Emilio" "Javier" "Anto"
c(TRUE,FALSE,TRUE) #vector logico
## [1] TRUE FALSE TRUE
edades=c(20,25,32,29,30,22)
edades
## [1] 20 25 32 29 30 22
edades^2
## [1] 400 625 1024 841 900 484
sqrt(edades)
## [1] 4.472136 5.000000 5.656854 5.385165 5.477226 4.690416
edades+10
## [1] 30 35 42 39 40 32
20*edades
## [1] 400 500 640 580 600 440
a=c(4,8,2,11)
b=c(0,8,4,15)
c=a+b
c
## [1] 4 16 6 26
¿Cómo acceder a los elementos de un vector?
edades[6]
## [1] 22
Las matrices son estructuras de datos bidimensionales (de dos
dimensiones). Las matrices, al igual que los
vectores, sólo admiten datos de un solo tipo. Se usan para almacenar
estructuras rectangulares.
# Esta matriz tienen 5 filas y 4 columnas y se llena por __filas__
A=matrix(1:20,nrow = 5,ncol = 4,byrow = TRUE)
A
## [,1] [,2] [,3] [,4]
## [1,] 1 2 3 4
## [2,] 5 6 7 8
## [3,] 9 10 11 12
## [4,] 13 14 15 16
## [5,] 17 18 19 20
# Esta matriz tienen 5 filas y 4 columnas y se llena por __columnas__
A2=matrix(1:20,nrow = 5,ncol = 4, byrow = FALSE)
A2
## [,1] [,2] [,3] [,4]
## [1,] 1 6 11 16
## [2,] 2 7 12 17
## [3,] 3 8 13 18
## [4,] 4 9 14 19
## [5,] 5 10 15 20
# La matriz identidad de orden 7
I=diag(7)
I
## [,1] [,2] [,3] [,4] [,5] [,6] [,7]
## [1,] 1 0 0 0 0 0 0
## [2,] 0 1 0 0 0 0 0
## [3,] 0 0 1 0 0 0 0
## [4,] 0 0 0 1 0 0 0
## [5,] 0 0 0 0 1 0 0
## [6,] 0 0 0 0 0 1 0
## [7,] 0 0 0 0 0 0 1
# Matriz identidad de orden 3
Id=matrix(c(1,0,0,0,1,0,0,0,1),nrow = 3,ncol = 3)
Id
## [,1] [,2] [,3]
## [1,] 1 0 0
## [2,] 0 1 0
## [3,] 0 0 1
Formemos una matriz cuyas entradas sean palabras (cadenas de caracteres).
# Formo un vector de datos de tipo caracter
glosario=c("Muestra","TLC","Distribución","Estimación","Intervalos","Potencia")
G=matrix(glosario,nrow = 3,ncol = 2,byrow = FALSE)
# byrow= TRUE te llena la matriz por filas
# byrow= FALSE te llena la matriz por columnas
G
## [,1] [,2]
## [1,] "Muestra" "Estimación"
## [2,] "TLC" "Intervalos"
## [3,] "Distribución" "Potencia"
is.matrix(G) # ¿es matriz G?
## [1] TRUE
Algunas funciones sobre matrices
| Funcion | Descripcion |
|---|---|
| dim() | devuelve las dimensiones de una matriz |
| [,] | accede a elementos dentro de la matriz |
| is.matrix | devuelve TRUE si el objeto es una matriz, FALSE si no lo es |
| colnames() | devuelve el nombre de las columnas de una matriz |
| rownames() | devuelve el nombre de las filas de una matriz |
| apply() | aplica una función sobre las filas o columnas de una matriz |
| cbind() | añade una columna a una matriz dada |
| rbind() | añade una columna a una matriz dada |
| mode() | devuelve el tipo de datos de los elementos de una matriz |
| dimnames() | devuelve el nombre de las dimensiones de una matriz |
| %*% | producto matricial |
| t() | transpuesta de una matriz |
| det() | determinan de una matriz |
| solve() | calcula la inversa de una matriz |
Los data frames son una estructura de datos de 2 dimensiones que pueden
contener datos de diferentes tipos en el sentido en que las columnas
pueden ser de diferente tipo entre sí. Sin embargo, todos los elementos
de una misma columna deben ser del mismo tipo. Al igual que las filas y
columnas de una matriz, todos los elementos de un data frame deben ser
de la misma longitud.
nombres=c("Emilio","Javi","Anto") #vector character
edad=c(25,28,29) #vector numeric
urbano=c(TRUE,FALSE,FALSE) #vector logical
ingreso<-c(20000,10000,30000) #vector numeric
edocivil<-c("casado","soltero","soltero") #vector character
datos=data.frame(nombres,edad,urbano,ingreso,edocivil)
datos
## nombres edad urbano ingreso edocivil
## 1 Emilio 25 TRUE 20000 casado
## 2 Javi 28 FALSE 10000 soltero
## 3 Anto 29 FALSE 30000 soltero
¿Cómo accedo a los elementos del data frame?
#Pedir la columna edad
datos$nombres
## [1] "Emilio" "Javi" "Anto"
datos$ingreso
## [1] 20000 10000 30000
datos[,1]
## [1] "Emilio" "Javi" "Anto"
datos[,"nombres"]
## [1] "Emilio" "Javi" "Anto"
datos2=datos
datos2[1,4]=4000
datos2
## nombres edad urbano ingreso edocivil
## 1 Emilio 25 TRUE 4000 casado
## 2 Javi 28 FALSE 10000 soltero
## 3 Anto 29 FALSE 30000 soltero
datos[]
## nombres edad urbano ingreso edocivil
## 1 Emilio 25 TRUE 20000 casado
## 2 Javi 28 FALSE 10000 soltero
## 3 Anto 29 FALSE 30000 soltero
Un tibble o tbl_df es un data frame pero menos restrictivo. Un tibble es
una versión moderna del data frame. Para mayores detalles léase tibbles
chapter in R for data science.
| Características clave de un tibble |
|---|
| Un Tibble nunca altera el tipo de entrada |
| Tibbles también puede contener columnas que son las listas |
| Podemos comenzar el nombre de un Tibble con un número, o también podemos contener un espacio |
| Tibble nunca puede generar los nombres de las filas |
Hay dos diferencias principales entre los tibbles y el data frame:
• Printing: un objeto de clase tibble tiene una
función de impresión más avanzada. Muestra solo las primeras diez filas
con todas las columnas que caben en la pantalla. Cada columna también
muestra los tipos de datos. Ayuda a evitar imprimir demasiados datos
automáticamente.
• Subsetting: podemos acceder a las columnas de un
tibble de distintas maneras, usando sintaxis del tipo:
mi_tibble=tibble(x = 1:5, y = 1, z = x^2 + y)
mi_tibble
## # A tibble: 5 × 3
## x y z
## <int> <dbl> <dbl>
## 1 1 1 2
## 2 2 1 5
## 3 3 1 10
## 4 4 1 17
## 5 5 1 26
#accedemos a la columna y
mi_tibble$y
## [1] 1 1 1 1 1
mi_tibble[["y"]]
## [1] 1 1 1 1 1
mi_tibble[[2]]
## [1] 1 1 1 1 1
Las listas son un tipo especial de vector que puede contener elementos
de diferentes clases. Las listas son un tipo de datos muy importante en
R y debe conocerlas bien. Las listas, en combinación con las diversas
funciones de la familia apply(), constituyen una poderosa combinación.
Las listas se pueden crear explícitamente usando la función list(), que
toma un número arbitrario de argumentos.
vector1<-c(1,2,3,4) # un vector
matrix1<-matrix(1:20,nrow=4,byrow = F) # una matrix
dataframe1<-datos # un data frame
lista1<-list(vector1,matrix1,dataframe1)
lista1 #Imprimimos la lista
## [[1]]
## [1] 1 2 3 4
##
## [[2]]
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 5 9 13 17
## [2,] 2 6 10 14 18
## [3,] 3 7 11 15 19
## [4,] 4 8 12 16 20
##
## [[3]]
## nombres edad urbano ingreso edocivil
## 1 Emilio 25 TRUE 20000 casado
## 2 Javi 28 FALSE 10000 soltero
## 3 Anto 29 FALSE 30000 soltero
Note que la lista creada contiene objetos con estructuras distintas:
un vector, una matriz y un data frame; y puede contener más elementos.
Es un objeto n-dimensional.
Otro ejemplo:
estudiante_nuevo_ingreso<-list(Estado="Edomex",
Nivel="Preparatoria",
Edad=15,
deportes=c("Fútbol","Voleibol"),
Edad.padres=c(60,58))
estudiante_nuevo_ingreso
## $Estado
## [1] "Edomex"
##
## $Nivel
## [1] "Preparatoria"
##
## $Edad
## [1] 15
##
## $deportes
## [1] "Fútbol" "Voleibol"
##
## $Edad.padres
## [1] 60 58
Usas la función names() para imprimir los nombres de los objetos dentro de la lista:
names(estudiante_nuevo_ingreso)
## [1] "Estado" "Nivel" "Edad" "deportes" "Edad.padres"
Para acceder a componentes concretos se usa el operador $ seguido del nombre de la componente de la lista, o bien el número de la componente entre corchetes dobles [[ ]]
estudiante_nuevo_ingreso[[1]]
## [1] "Edomex"
En R la estructura general para programar una función es:
nombre_de_la_función=function(argumentos){cuerpo_de_la_función}
Ejemplo de función propia
Dado un vector construir una función que estadarice los datos.
# La siguiente función sólo estadariza estructura vectores
# Sea x un vector numérico
estandarizacion<-function(x){
(x-mean(x))/sd(x)
}
# así llamas a la función
x<-c(2,3,4)
estandarizacion(x)
## [1] -1 0 1
Son estructuras que te permiten ejecutar acciones repetitivas y ordenar
y estructurar lógicamente tu código.
| Estructura de control | Significado | Sintaxis |
|---|---|---|
| if | Si | f(condición) {operación a ejecutar} |
| if, else | Si, de otro modo | if(condición) {operación a ejecutar} else {la otra operación} |
| if, else if,. . . , else | Si, si no has esto,. . . , de otro modo esto |
if(condición) {operación a ejecutar} else if {la otra operación} else {operación} |
| for | Para cada uno de | for(elemento in objeto){operación} |
| while | mientras | while(c ondicion){operación} |
| break | romper o interrumpir | if (condición) break |
| next | siguiente | if (condición) next |
Ejemplo de if
La estructura o condicional if te permite hacer lo siguiente:
Si tal condición es verdadera entonces ejecuta esto Si la condición es
falsa no ejecuta nada.
if(pi>3){"pay"} # Como la condición es cierta pinta ALEJANDRO
## [1] "pay"
if(pi<3){"not pay"} # Como la condición es cierta pinta ALEJANDRO
Ejemplo de if, else
Estas condicionales lo que te permiten hacer es lo sig:
Si tal condición se cumple has esto, de otro modo has esto otro.
if(3==1){"Pozole"} else {"Pancita"}
## [1] "Pancita"
if(3>3){"Pozole"} else {"Pancita"}
## [1] "Pancita"
Ejemplo if, else if, else
Esta estructura condicional te permite evaluara varias condiciones de manera simultánea.
nota<-75
if(nota<60) {
"Reprobado"
}else if(nota<75){
"Suficiente"
}else if(nota<=90){
"Bueno"} else {
"Excelente"}
## [1] "Bueno"
Ejemplo for
Es una estructura que te permite ejecutar operaciones elemento a
elemento.
for(i in 1:10){print(i^2)}
## [1] 1
## [1] 4
## [1] 9
## [1] 16
## [1] 25
## [1] 36
## [1] 49
## [1] 64
## [1] 81
## [1] 100
nombres<-c("Alex","Luis","Ana","Juan")
for(nombre in nombres){
cat("Mi nombres es:",nombre,"\n")}
## Mi nombres es: Alex
## Mi nombres es: Luis
## Mi nombres es: Ana
## Mi nombres es: Juan
base<-iris[1:10,-5]
#View(base)
for(i in 1:ncol(base)){
print(sum(base[,i])/length(base[,i]))
#print(mean(base[,i]))
}
## [1] 4.86
## [1] 3.31
## [1] 1.45
## [1] 0.22
Ejemplo while
Este bucle te permite ejecutar una operación mientras una condición
especificada sea verdadera.
suma<-0
contador<-0
while(suma<100)
{
suma=suma+sample(1:20,1)
contador<-contador+1
}
# imprimimos el valor de suma
cat("La suma es:", suma,"\n")
## La suma es: 100
cat("Número de operaciones:",contador)
## Número de operaciones: 9
Ejemplo de break
Esta estructura te permite interrumpir un ciclo for o un while, siempre
que se cumpla cierta condición.
vector=seq(1,20,by=1)
vector
## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
for (variable in vector) {
if(variable==5)
{
break
}
print(variable)
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4