Funções escritas pelo usuário no R
Um dos grandes pontos fortes do R é a capacidade do usuário de adicionar funções. De fato, muitas das funções do R são, na verdade, funções de funções. A estrutura de uma função é apresentada a seguir.
myfunction <- function(arg1, arg2, ... ){
statements
return(object)
}
Os objetos na função são locais para a função. O objeto retornado pode ser qualquer tipo de dados. Aqui está um exemplo.
# function example - get measures of central tendency
# and spread for a numeric vector x. The user has a
# choice of measures and whether the results are printed.
mysummary <- function(x,npar=TRUE,print=TRUE) {
if (!npar) {
center <- mean(x); spread <- sd(x)
} else {
center <- median(x); spread <- mad(x)
}
if (print & !npar) {
cat("Mean=", center, "\n", "SD=", spread, "\n")
}
else if (print & npar) {
cat("Median=", center, "\n", "MAD=", spread, "\n")
}
result <- list(center=center,spread=spread)
return(result)
}
# invoking the function
set.seed(1234)
x <- rpois(500, 4)
y <- mysummary(x)
Median= 4
MAD= 1.4826
# y$center is the median (4)
# y$spread is the median absolute deviation (1.4826)
y <- mysummary(x, npar=FALSE, print=FALSE)
# no output
# y$center is the mean (4.052)
# y$spread is the standard deviation (2.01927)
Pode ser instrutivo examinar o código de uma função. No R, você pode visualizar o código de uma função digitando o nome da função sem o ( ).
Por fim, você pode querer armazenar suas próprias funções e tê-las disponíveis em todas as sessões. Você pode personalizar o ambiente do R paracarregar suas funções na inicialização.
Para praticar
Experimente este curso interativo sobre como escrever funções no R.