Toda manipulação de dados e análises gráficas ou estatísticas no R são realizadas através de funções. Entretanto, você não precisa ser um programador experimentado para construir algumas funções simples para facilitar a atividade de manipulação de dados.
A estrutura básica de uma função é:
######################################################
2 ########### 5 NOÇÕES DE PROGRAMAÇÃO
3 ########### 5.2 Funções Simples
4 ######################################################
5 # 5.2.1. A Estrutura Básica de uma Função
6
7 minha.funcao <- function( argumento1, argumento2, argumento3, . . .)
8 {
9 comando 1
10 comando 2
11 comando 3
12 . . .
13 comando n
14 }
15
Os elementos dessa expressão são:
minha.funcao é o nome que a nova função receberá;function é a expressão no R que cria uma nova função;()” são listados (separados por vírgula) os argumentos necessários a função;{}” são listados os comandos da função, sempre com um comando por linha.Vejamos um exemplo simpes:
16 sincos <- function(x)
17 {
18 sin(x) * cos(x)
19 }
20 sincos(10)
21 sin(10) * cos(10)
22 sincos(pi)
23 sin(pi) * cos(pi)
24
Todos argumentos de uma função tem seu respectivo nome. Ao evocar a função podemos fazê-lo de duas formas:
Vejamos um exemplo com os dados do arquivo “egrandis.csv”.
25 # 10.2.2. Definindo Argumentos
26
27 egr = read.csv("egrandis.csv")
28 plot( col="red", pch=2, y=egr$ht, x=egr$dap )
29 plot( egr$dap, egr$ht )
30
Para qualquer argumento podemos definir um valor default apresentando esse valor junto com argumento na definição da função:
31 myplot <- function(..., cor="red") { plot(..., col=cor) }
32 myplot( egr$dap, egr$ht )
33 myplot( ht ~ dap, data=egr )
34
O exemplo acima também mostra a função do argumento “. . .”. Esse argumento representa qualquer argumento adicional que desconhecemos, mas que desejamos que seja passado para as funções dentro da função que estamos construindo.
É natural se definir funções particulares a um dado projeto de análise de dados no próprio “script” em que se programa a análise.
Contudo, quando se definem diversas funções que serão utilizadas em diferentes projetos de análise de dados, é interessante definir as funções num arquivo exclusivo para as funções (p.ex., arquivo “minhas-funcoes.R”). Esse arquivo é como um script (mas apenas com as definições das funções) e pode ser editado utilizando a janela de edição de scripts da interface utilizada (p.ex. RStudio). Para ler o arquivo em qualquer sessão do R utiliza-se o comando source:
35 # 5.2.3. Um Aspecto Prático na Edição de Funções 36 37 source( "minhas-funcoes.R" ) 38