UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE CIENCIAS ECONÓMICAS

INGENIERÍA EN ESTADÍSTICA

AUTORES:

*JOHANNA AGUILAR

*JOSE BAÑO

*SAYRI MENDOZA

*JAIME PAREDES

FECHA DE PUBLICACIÓN: 2023-08-05

TALLER-APE 13

Funciones en R

EJERCICIO 1

Función suma

suma<-function(x,y){ + suma de los elementos “x” e “y” + x+y + }suma<-function(x,y) {x+y}

suma(x=2 , y=3) También podemos omitir los nombres de los argumentos si mantenemos la correspondencia con el orden o posición de los argumentos en el que damos los valores:

suma <- function(x,y){
    x+y
  }  

suma(2,3)
## [1] 5

EJERCICIO 2

Función potencia con paste y cat. Cuando queremos que el resultado de una función contenga texto podemos utilizar las función paste().

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"

También podemos utilizar la función cat(), que tiene mayor versatilidad. Por ejemplo:

  potencia2 <- function(x, y) {
    result <- x^y 
    cat(x,"elevado a la",y,"es igual a
 ",result)
  }
potencia2(2,3)
## 2 elevado a la 3 es igual a
##   8

EJERCICIO 3

Función de valor absoluto con condicionales (if)

absoluto<-function(x) {
  if(x<0){
    paste(x*(-1))
  }else {
    paste(x)
  }
}
absoluto(-3)
## [1] "3"

EJERCICIO 4

Función a trozos con condicionales (if) Función a trozos: si x es menor a 5 toma el valor 0 y en caso contrario el valor 10.

ftrozos <- function(x) {   
  if (x < 5){0} 
  else 
    (x=10) 
} 
ftrozos(3) 
## [1] 0
ftrozos(5) 
## [1] 10

EJERCICIO 5

Cálculo de la tasa de metabolismo basal La Tasa de Metabolismo Basal (TMB), es la cantidad mínima de energía que necesita tu cuerpo para funcionar. Nunca debemos ingerir menos cantidad de calorias de las que marca la tasa metabolica. La TMB se calcula siguiendo las siguientes ecuaciones:

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

EJERCICIO 6

Varias formas de obtener resultados. Imagina que queremos calcular el valor de la hipotenusa de un triangulo a partir de los valores de sus catetos. único valor. Si solo queremos obtener el valor de la hipotenusa:

hipotenusa<-function(cateto1, cateto2) {
    sqrt(cateto1^2+cateto2^2)
  }
hipotenusa(2,4)
## [1] 4.472136

Lista de valores. Si queremos que en el resultado se muestren los valores iniciales y finales:

 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

Con mas de un valor para cada cateto. Si queremos que el resultado tenga varios tipos de información (numérica o categórica) podemos utilizar una lista.

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

Resultado como data.frame. Si queremos que el resultado sea de un mismo tipo pero con multiples variables podemos utilizar el data.frame.

hipotenusa2<-function(cateto1, cateto2) {
  h2<-sqrt(cateto1^2+cateto2^2)
  data.frame(variable=c("cateto","cateto","hipotenusa"),valor=c(cateto1,cateto2,h2))
}
hipotenusa2(2,4) 
##     variable    valor
## 1     cateto 2.000000
## 2     cateto 4.000000
## 3 hipotenusa 4.472136

EJERCICIO 7

Función return

f<-function(x,y) {
  return("y debe ser numerico")
  x+y 
} 
f(2,"hola")
## [1] "y debe ser numerico"

Si no utilizaramos la funcisn return() obtendrmamos un mensaje de error.