Funciones aplicadas:
function: Se puede definir una función dentro de otra función.
paste: sirve para concatenar cadenas de caracteres.
cat: facilita la impresión cuando hay muchas variables.
if: es usado cuando deseamos que una operación se ejecute únicamente cuando una condición se cumple.
else: es usado para indicarle a R qué hacer en caso de la condición de un if no se cumpla.
sqrt: calcula la raiz cuadrada.
list: permite agrupar o contener cosas como dataframes, matrices y vectores en una misma variable.
data.frame: se utiliza para guardar tablas de datos.
return: obtiene el resultado de un paso en particular en la ejecución, no necesariamente el último.
is.character: Esto es de utilidad para asegurarnos que las operaciones que deseamos realizar tendrán los datos apropiados
suma<-function(x,y){x + y} # suma de los elementos "x" e "y” + x+y + }
suma(x=2,y=3)
## [1] 5
suma(2,3)
## [1] 5
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"
x<-2
cat(x)
## 2
cat("María")
## María
cat("María tiene", x, "hijos", ".")
## María tiene 2 hijos .
#\b quita el último espacio María tiene 2 hijos.
cat("María tiene", x, "hijos", "\b.")
## María tiene 2 hijos .
cat("María tiene\n", x, "hijos", "\b.")
## María tiene
## 2 hijos .
absoluto <- function(x) {x } # valor absoluto de x + if(x<0){ -x } + x + } > absoluto(-3) [1] 3 > absoluto(3) [1] 3
absoluto<-function(x)
{ if(x<0)
{ -x } else{ x }
}
absoluto(-3)
## [1] 3
absoluto(3)
## [1] 3
ftrozos <- function(x) {
if (x < 5) {
0
}else{
10
}
}
ftrozos(3)
## [1] 0
ftrozos(5)
## [1] 10
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",160,50,25)
## [1] 1305.5
hipotenusa<-function(cateto1, cateto2) {
sqrt(cateto1^2+cateto2^2)
}
hipotenusa(2,4)
## [1] 4.472136
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
hipotenusa(2:4,4:6)
## $cateto1
## [1] 2 3 4
##
## $cateto2
## [1] 4 5 6
##
## $hipotenusa
## [1] 4.472136 5.830952 7.211103
hipotenusa<-function(cateto1,cateto2) {
h<-sqrt(cateto1^2+cateto2^2)
data.frame(variable=c("cateto","cateto","hipotenusa"),valor=c(cateto1,cateto2,h))
}
hipotenusa(2,4)
## variable valor
## 1 cateto 2.000000
## 2 cateto 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
f<- function(x,y)
{
if(is.character(y))
return("y debe ser numérico")
x+y
}
f(2,"hola") ## obtenemos un mensaje de que y debe ser un valor numerico.
## [1] "y debe ser numérico"
f(2,2) ## se resuelve la suma entre x+y
## [1] 4
f<-function(x,y)
{
if(is.character(y))
"y debe ser numérico"
x+y
}