10 março, 2021

Introdução

Mais uma vez, nos reportamos aos princípios do R, definidos por Chambers (2016), mais especificamente ao segundo princípio,

  • Princípio da função: Tudo que acontece no R é uma chamada de função.

Componentes de uma função

Um objeto de modo function (Usar mode()!) tem três componentes:

  • Argumentos, função formals(),
  • Corpo, função body() e
  • Ambiente, função environment().

Primeiro exemplo

> # Vetor
> y <- c(5, 3, 4); y
## [1] 5 3 4
> # Funcao
> sort(x = y)
## [1] 3 4 5

Primeiro exemplo (continuação…)

> # Argumentos da funcao sort
> formals(sort)
## $x
## 
## 
## $decreasing
## [1] FALSE
## 
## $...
> # Corpo da funcao
> body(sort)
## {
##     if (!is.logical(decreasing) || length(decreasing) != 1L) 
##         stop("'decreasing' must be a length-1 logical vector.\nDid you intend to set 'partial'?")
##     UseMethod("sort")
## }

Primeiro exemplo (continuação…)

> # Ambiente
> environment(sort)
## <environment: namespace:base>

Argumentos de entrada e padrão

A função sort() tem argumento padrão para decreascing = FALSE

> # Funcao
> sort(x = y, decreasing = TRUE)
## [1] 5 4 3

Ajuda sobre funções de pacotes

> ?sort()
> ??sort()
> help("sort")

Chamada de função

  • Aninhado:
> # Gerando 100 numeros aleatorios de uma distribuicao normal
> set.seed(10) # Semente
> x <- rnorm(100)
> 
> # Calculando o desvio padrao
> sqrt(var(x))
## [1] 0.9412359

Chamada de função (continuação…)

  • intermediária:
> # Calculando o desvio padrao
> vari <- var(x)
> desvpad <- sqrt(vari); desvpad
## [1] 0.9412359

Chamada de função (continuação…)

  • Pipe:
> # Anexando o pacote
> library(magrittr)
> 
> # Calculando o desvio padrao
> x %>%
+   var() %>%
+   sqrt()
## [1] 0.9412359

Bons estudos!

Referências

Chambers, John M. 2016. Extending R. The R Series. Boca Raton, Florida: Chapman; Hall/CRC.