next up previous
Next: Aula Prática 09 Up: CE-057: Introdução aos modelos Previous: Aula Prática 07

Aula Prática 08

Escrevendo Funções No R

O objetivo desta prática é uma rápida introdução ao uso de funções no R.

Funções nada mais são que um grupo de comandos para executar uma determinada tarefa que são agrupados de modo a tornar a execução mais simples e eficiente.

O formato básico de uma função é o seguinte:

NOMEDAFUNÇÃO <- function(ARGUMENTOS){
  COMMANDOS
  \ldots
  return(RESULTADO)
}

EXEMPLO 1: Uma função para calcular a cubo de um número.

cubo <- function(x){
  cubo <- x^3
  return(cubo)
}
cubo(2)
cubo(5)
cubo(1:5)

Nesta função $x$ é o argumento e a função retorna o objeto cubo. Uma versão simplificada desta função é:

cubo <- function(x){x^3}
cubo(2)
cubo(5)
cubo(1:5)
pois o comando return não é obrigatório e em sua ausência a função retorna o objeto definido na última linha.





EXEMPLO 2: Intervalo de confiança para média.

Considere o seguinte conjunto de dados.

alt <- c(165, 164, 185, 188, 196, 183, 152, 175, 190, 162, 
         162, 185, 162, 193, 167)

O intervalo de confiança para a média pode ser obtido da seguite forma:

alt.m <- mean(alt)
alt.se <- sqrt(var(alt))/sqrt(15)
tval <- qt(c(0.025, 0.975), 14)
tval
alt.ic <- c(alt.m + tval * alt.se)
alt.ic

Agora, vamos escrever e testar uma função para calcular o intervalo de confiança:

ic.mean <-function(x, conf){
  n <- length(x)
  alt.m <- mean(x)
  alt.se <- sqrt(var(x))/sqrt(n)
  tval <- qt(c((1-conf)/2, 1-((1-conf)/2)), n-1)
  alt.ic <- c(alt.m + tval * alt.se)
  return(alt.ic)
}

e para usar a função:

ic.mean(alt, conf = 0.95)
ic.mean(alt, conf = 0.99)
ic.mean(alt, conf = 0.90)

Vamos agora sofisticar um pouco a função adicionando um teste para checar o valor de nível de confiança e incluindo nomes no vetor resposta.

ic.mean <- function(x, conf){
  if(conf < 0 | conf > 1)
    stop("argumento conf deve ser um numero no intervalo [0,1]")
  n <- length(x)
  alt.m <- mean(x)
  alt.se <- sqrt(var(x))/sqrt(n)
  tval <- qt(c((1-conf)/2, 1-((1-conf)/2)), n-1)
  alt.ic <- c(alt.m + tval * alt.se)
  names(alt.ic) <- c("lim.inf", "lim.sup")
  return(alt.ic)
}

ic.mean(alt, conf = 0.95)
ic.mean(alt, conf = 95)

  1. Amplie a função acima para que retorne também o intervalo de confiança para a variância.

  2. escreva uma função para calcular o intervalo de confiança para uma proporção.

  3. escreva uma função para a qual a entrada seja um sistema e a saída contenha:

  4. Teste a função que voce escreveu com os exercícios das aulas anteriores:


next up previous
Next: Aula Prática 09 Up: CE-057: Introdução aos modelos Previous: Aula Prática 07
Paulo Justiniano Ribeiro Jr e Adilson dos Anjos