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 é 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)