Вы находитесь на странице: 1из 41

Probabilidad y

Estadística fundamental
aplicando RStudio
Funciones y bucles en R

María Fernanda Acero Baena


Estructuras de
programación
{comando1 ; comando2; comando3 ; ....}

{comando1
comando2
comando3
....}
Bucle
• Un bucle o ciclo, en programación, es un grupo de
comandos que ejecuta repetidas veces un trozo de
código, hasta que la condición asignada a dicho
bucle deja de cumplirse.
Iteración
• Es muy usado cuando se trabaja con datos
multivariados, cuando es necesario trabajar con
vectores y matrices y poder “recorrer” sus
elementos.
• Siempre de ser posible, evitar usar iteraciones,
estas son más lentas, cuando se quiere aplicar una
función a vectores o matrices existe la función
apply.
Iteración
Secuencias
seq(from = a, to = b, by =c)

Posición Posición final Amplitud


inicial
a:b

Posición Posición final


inicial
rep(x, times=5)

Vector a Las veces


repetir que se
repetirá
El bucle for
• Para crear un bucle repetitivo (un bucle for) en el
cual se puede indicar con anterioridad el número
mínimo de interacciones, la sintaxis es la
siguiente:
for (i in listadevalores) { secuencia de
comandos }
El bucle for
• Si hay solo una instrucción, las llaves {} pueden
omitirse.
• El objeto listadevalores puede ser cualquier
objeto: un vector, una variable, una matriz, etc. R
recorre todos los elementos del argumento
reemplazando sucesivamente la variable i por
los elementos.
El bucle for
El bucle for
• Para escribir valores en medio de un bucle es
necesario usar la función print. Una instrucción
como

no escribe los resultados en la pantalla. Hay que


escribir

para imprimir el resultado dentro del bucle.


El bucle for: Ejercicio

• Para una secuencia de números del 1 al 20,


crear un bucle for que imprima el resultado de
cada uno de esos números (1 al 20) elevados a
la 4 y luego se les sume 2.
El bucle while
while ( condicion logica) { expresiones a
ejecutar }

• El bucle while es un ciclo repetitivo basado en


los resultados de una expresión lógica
• El propósito es repetir un bloque de
código mientras una condición se mantenga
verdadera.
• Usualmente se usa cuando no se conoce el
número de ciclos que se desea realizar antes de
comenzar.
El bucle while
• Si no se conoce el número de ciclos que se
desea realizar antes de comenzar, se usa while
que permite iterar hasta que cierto criterio se
cumpla. Como ejemplo, vamos a sumar los
enteros positivos hasta que la suma pase de
1000
El bucle while: Ejercicio

• Crear un bucle en el cual se sumen enteros


desde 1 hasta que la suma pase de 200.
• Tener dos variables una que indique el entero que se
está sumando y el valor de la suma.
Nota: Inicializar las variables en un valor 0.
El bucle repeat
repeat { expresiones a ejecutar (criterio de
parada) break}

• Este comando repite un conjunto de instrucciones


hasta que se satisfaga un criterio de parada.
• En R se usa la palabra break para indicar el momento
de parar.
El bucle repeat
repeat { expresiones a ejecutar (criterio de
parada) break}
El bucle repeat: Ejercicio

• Crear un bucle en el cual se sumen enteros


desde 1 hasta que la suma pase de 200.
• Tener dos variables una que indique el entero que se
está sumando y el valor de la suma.
Nota: Inicializar las variables en un valor 0.
Condicional: if

if (condicion) comando1 else comando2

if (condicion) {
comando1
} else {
comando2
}
Condicional: if
La combinación de 'if' + 'else' sirve para establecer
tanto los comandos que deben ejecutarse al darse
una condición determinada, como aquellos que
deben ejecutarse al *no* darse dicha condición.

Si Comando 1
Se cumple la condición
No Comando 2
Condicional: if

%% : Es el resto de la división, es llamada la operación modulo.


Ejemplo: combinación bucle
e if
• Supongamos que mi objetivo es que se
clasifiquen los números del 1 al 10, bajo el
criterio: si es mayor que 5 es 'grande', de lo
contrario es 'chico'.
• Para eso se va a utilizar un 'for' con el vector
1:10, la variable de iteración será 'i'. Para
almacenar los resultados voy a crear un vector
vacío
Condicional: ifelse
La función ifelse evalúa una condición en todos
los elementos de un vector. En donde se cumple
dicha condición asigna un valor determinado,
mientras que en donde no se cumple asigna un
valor alternativo.
ifelse(condición, valor1 , valor2)
Condicional: if

Si Comando 1
Condición 1
Si Comando 2
No Condición 2
No Comando 2
Condicional: ifelse
Ejercicio
• A partir de una secuencia de números del 1 al
10, para los números mayores que 5
multiplicar por 7 y para los números los
menores o iguales que 5 sumarle 3.
Vectorización
• Dada la facilidad de trabajar con vectores en
R, usualmente es posible reescribir bucles en
términos de operaciones con vectores que
resultan más breves y legibles.
Cumsum:
Función de suma
acumulada
Función
• Una función es, simplemente, una sucesión de
instrucciones que se juntan para formar una
nueva instrucción, que es el nombre de la
función.
• Las funciones reciben argumentos y devuelven
valores.
• Todas las variables utilizadas en la definición
de la función son variables internas y
desaparecen una vez que la función ha sido
ejecutada.
Función
• El uso de una función en R es similar al uso
matemático. En matemáticas escribimos
𝑦 = 𝑓 𝑥 y en R

• Veamos un ejemplo. Vamos a definir una


función llamada cubo que toma un número y lo
eleva a la potencia tres:
Luego de declarar,
se usa igual a las
otras funciones de
R
Creación de funciones en R

nombre -> function(argumentos) {


instrucciones de la función
return(resultados)
}
Función: Ejemplos
• Esta función tiene la misma flexibilidad de las otras
funciones de R
Funciones: Varios
argumentos
• Una función puede tener más de un argumento (o
ninguno). La siguiente función divide el primer
argumento entre el segundo.
Funciones
nombre −> function(argumentos) {
instrucciones de la función
return(resultados)
}
• Las expresiones en cursiva deben reemplazarse
por expresiones y nombres válidos.
• Los argumentos son una lista de parámetros que
serán usados internamente por la función.
• Las instrucciones pueden ser cualesquiera
instrucciones válidas de R, que serán evaluadas a
medida que R las ejecuta, y los resultados pueden
ser datos o variables.
Funciones
• En lugar de usar return, es posible poner el nombre de
una variable como expresión final. R devuelve el
resultado de la última expresión en la función, pero
usar return es una manera más apropiada de devolver
los resultados. Esto asegura que el resultado de la
función sea realmente el que uno desea.
• Si no desea que la función escriba ningún resultado,
use la instrucción invisible. La expresión
return(invisible(x)) devuelve el contenido de la variable
x pero no lo escribe en pantalla.
Ejercicio en clase
1. Escriba una función que calcule la media
geométrica: 𝑛
𝑥1 + 𝑥2 + ⋯ + 𝑥𝑛
𝑥ҧ = ෍ 𝑥𝑖 =
𝑛
𝑖=1
2. Crear una función que calcule el coeficiente de
variación:
𝜎
𝐶𝑉 =
𝑥ҧ
Funciones
• Todas las variables declaradas dentro de una función
son locales y desaparecen luego de ejecutada la
función.
Parámetros y valores por
defecto
• Una función puede tener muchos argumentos y en
esos casos es cómodo no tener que incluir todos
los parámetros.
• Es conveniente agregar valores “por defecto”. Esto
es posible en R usando el signo =.
• Si llamamos una función sin especificar
explícitamente el parámetro, se usará su valor por
defecto.
Argumentos
Hay dos maneras de asignar valores a los
argumentos de una función:
• Usando el nombre del parámetro
• Usando la posición del argumento en la definición
de la función
Argumentos
Hay dos maneras de asignar valores a los
argumentos de una función:
• Usando el nombre del parámetro
• Usando la posición del argumento en la definición
de la función
Funciones para presentar
resultados
Además de la función print, que escribe el valor de una
variable, R tiene la función cat que tiene mayor
versatilidad.
Funciones para presentar
resultados

Вам также может понравиться