UNIVERSIDAD CENTRAL DEL ECUADOR
Facultad de Ciencias Económicas
Colaborador Ing. Francisco Valverde PhD
En una función tenemos 3 tipos de elementos:
Argumentos (o valores de entrada).
Cuerpo: operaciones que han de realizarse. Se deben localizar entre corchetes “{}”.
Resultado (o valores de salida): la última expresión que se ejecuta.
mifuncion <- function(argumento1, argumento2, …) { cuerpo resultado }
Las funciones también son objetos y por tanto les daremos un nombre, en este caso se llamará “mifuncion”. Debes evitar utilizar nombres que ya estén en uso en R, por ejemplo “mean”. Los argumentos se separan por una coma dentro de “función()”. Puede ser cualquier tipo y cantidad de argumentos. Los argumentos son los ingredientes que necesitas para que se ejecute la función. Los argumentos pueden tener un valor predeterminado, por ejemplo si escribimos argumento2=10:
mifuncion <- function(argumento1, argumento2=10, …) { cuerpo resultado }
El cuerpo de la función contiene las operaciones que deseamos que se ejecuten sobre cada uno de los argumentos detallados anteriormente. Vienen dados entre corchetes “{}” y se ejecutan cada vez que llamamos la función. El resultado es el valor devuelto por la función que se genera en las operaciones que se han ejecutado en el cuerpo de la función. Puede ser cualquier tipo de datos. La última línea del código será el valor que devolverá la función. Veamos algunos ejemplos:
function() permite definir una función
dentro de otra función, es decir, se puede utilizar como argumento para
otras funciones o se pueden ejecutar desde otras funciones.suma <- function(x,y){
x+y
}
suma(x=2,y=3)
## [1] 5
suma <- function(x,y){
x+y
}
suma(2,3)
## [1] 5
function() permite definir una función
dentro de otra función, es decir, se puede utilizar como argumento para
otras funciones o se pueden ejecutar desde otras funciones.paste() nos permite concatenar vectores
convirtiéndolos en caracteres. El método paste() toma tres parámetros y
devuelve una cadena concatenada.potencia <- function(x, y) {
result <- x^y
paste(x,"elevado a la potencia de", y, "es", result)
}
potencia(2,3)
## [1] "2 elevado a la potencia de 3 es 8"
cat() nos permite concatenar e imprimir los
objetos. Toma hasta seis parámetros y genera los objetos, concatenando
las representaciones.x<-2
cat(x)
## 2
cat("Maria")
## Maria
cat("Maria tiene", x, "hijos", ".")
## Maria tiene 2 hijos .
cat("Maria tiene", x, "hijos", "\b.")
## Maria tiene 2 hijos .
cat("Maria tiene\n", x, "hijos", "\b.")
## Maria tiene
## 2 hijos .
function() permite definir una función
dentro de otra función, es decir, se puede utilizar como argumento para
otras funciones o se pueden ejecutar desde otras funciones.if (si) es usado cuando deseamos que una
operación se ejecute únicamente cuando una condición se cumple.absoluto <- function(x) {
if(x<0)
abs (-x)
abs (x)
}
absoluto(-3)
## [1] 3
absoluto(3)
## [1] 3
function() permite definir una función
dentro de otra función, es decir, se puede utilizar como argumento para
otras funciones o se pueden ejecutar desde otras funciones.if (si) es usado cuando deseamos que una
operación se ejecute únicamente cuando una condición se cumple.else (de otro modo) es usado para indicarle
a R qué hacer en caso de la condición de un if no se cumpla.ftrozos <- function(x) {
if (x < 5){0}
else
(x=10)
}
ftrozos(3)
## [1] 0
ftrozos(5)
## [1] 10
function() permite definir una función
dentro de otra función, es decir, se puede utilizar como argumento para
otras funciones o se pueden ejecutar desde otras funciones.if (si) es usado cuando deseamos que una
operación se ejecute únicamente cuando una condición se cumple.else (de otro modo) es usado para indicarle
a R qué hacer en caso de la condición de un if no se cumpla.TMB<-function(Sexo,Altura,Peso,Edad){
if(Sexo=="mujer"){ 655 + (9.6 * Peso) + (1.8 * Altura) - (4.7 * Edad) }
else{ 66 + (13.7 * Peso) + (5 * Altura) - (6.8 * Edad) }
}
TMB("hombre",170,57,32)
## [1] 1479.3
TMB("mujer",150,50,25)
## [1] 1287.5
function() permite definir una función
dentro de otra función, es decir, se puede utilizar como argumento para
otras funciones o se pueden ejecutar desde otras funciones.return() procesa datos y devuelven los
resultados.sqrt() retorna la raíz cuadrada de un
número.hipotenusa<-function(cateto1, cateto2){
sqrt(cateto1^2+cateto2^2)
}
hipotenusa(2,4)
## [1] 4.472136
function() permite definir una función
dentro de otra función, es decir, se puede utilizar como argumento para
otras funciones o se pueden ejecutar desde otras funciones.return() procesa datos y devuelven los
resultados.list() permite la creación de listas, paro
lo cual solicita los elementos que deseamos incluir en nuestra lista.
Para esta estructura, no afectan las dimensiones o largo de los
elementos.sqrt() retorna la raíz cuadrada de un
número.hipotenusa<- function(cateto1, cateto2)
{
h<-sqrt(cateto1^2+cateto2^2)
list(cateto1=cateto1,cateto2=cateto2,hipotenusa=h)
}
hipotenusa(2,4)
## $cateto1
## [1] 2
##
## $cateto2
## [1] 4
##
## $hipotenusa
## [1] 4.472136
####El comando function() permite definir una función
dentro de otra función, es decir, se puede utilizar como argumento para
otras funciones o se pueden ejecutar desde otras funciones.
return() procesa datos y devuelven los
resultados.list() permite la creación de listas, paro
lo cual solicita los elementos que deseamos incluir en nuestra lista.
Para esta estructura, no afectan las dimensiones o largo de los
elementos.sqrt() retorna la raíz cuadrada de un
número.hipotenusa<- function(cateto1, cateto2)
{
h<-sqrt(cateto1^2+cateto2^2)
list(cateto1=cateto1,cateto2=cateto2,hipotenusa=h)
}
hipotenusa(2:4,4:6)
## $cateto1
## [1] 2 3 4
##
## $cateto2
## [1] 4 5 6
##
## $hipotenusa
## [1] 4.472136 5.830952 7.211103
function() permite definir una función
dentro de otra función, es decir, se puede utilizar como argumento para
otras funciones o se pueden ejecutar desde otras funciones.return() procesa datos y devuelven los
resultados.sqrt() retorna la raíz cuadrada de un
número.data.frame()crea marcos de datos,
colecciones de variables estrechamente acopladas que comparten muchas de
las propiedades de las matrices y las listas, utilizadas como estructura
de datos fundamental por la mayoría del software de modelado de R.hipotenusa<- function(cateto1, cateto2)
{
h<-sqrt(cateto1^2+cateto2^2)
data.frame(variable= c("cateto1","cateto2","hipotenusa"),
valor= c(cateto1,cateto2,h))
}
hipotenusa(2,4)
## variable valor
## 1 cateto1 2.000000
## 2 cateto2 4.000000
## 3 hipotenusa 4.472136
hipotenusa<-function(cateto1, cateto2){
h<-sqrt(cateto1^2+cateto2^2)
data.frame(cateto1=cateto1,cateto2=cateto2,hipotenusa=h)
}
hipotenusa(2:4,4:6)
## cateto1 cateto2 hipotenusa
## 1 2 4 4.472136
## 2 3 5 5.830952
## 3 4 6 7.211103
function() permite definir una función
dentro de otra función, es decir, se puede utilizar como argumento para
otras funciones o se pueden ejecutar desde otras funciones.return() procesa datos y devuelven los
resultados.f<-function(x,y) {
return("y debe ser numérico")
x+y
}
f(2,"hola")
## [1] "y debe ser numérico"
f<-function(x,y){ “y debe ser numérico”
x+y
} f(2,“hola”)