3.3 Objetos e funções
O R te permite salvar valores dentro de um objeto. Um objeto é simplesmente um nome que guarda um valor. Para criar um objeto, utilizamos o operador <-.
No exemplo abaixo, salvamos o valor 1 em a. Sempre que avaliarmos o objeto a, o R vai devolver o valor 1.
# Salvando `1` em `a`
a <- 1
# Avaliando o objeto `a`
a
## [1] 1Existem algumas regras para dar nomes aos objetos. A mais importante é: o nome deve começar com uma letra4. O nome pode conter números, mas não pode começar com números. Você pode usar pontos . e underlines _ para separar palavras.
# Permitido
x <- 1
x1 <- 2
objeto <- 3
meu_objeto <- 4
meu.objeto <- 5
# Não permitido
1x <- 1
_objeto <- 2
meu-objeto <- 3Atenção!
O R diferencia letras maiúsculas e minúsculas, isto é, b é considerado um objeto diferente de B. Rode o exemplo abaixo e observe que dois objetos diferentes são criados no Environment.
b <- 2
B <- 3
b
## [1] 2
B
## [1] 3O objeto mais importante para cientistas de dados é, claro, a base de dados. No R, uma base de dados é representada por objetos chamados de data frames. Na próxima seção, vamos entender o que são esses objetos.
Enquanto objetos são nomes que guardam valores, funções no R são nomes que guardam um código de R. A ideia é muito simples: sempre que você rodar uma função, o código que ela guarda será executado e um resultado nos será devolvido.
A sintaxe para usar uma função é a seguinte:
nome_da_funcao(arg1, arg2, argn)Entre parênteses, após o nome da função, temos o que chamamos de argumentos. Uma função pode ter qualquer número de argumentos e eles são sempre separados por vírgula.
Basicamente, uma função recebe seus argumentos, executa uma ação sobre ou a partir deles e devolve um resultado. Por exemplo
sum(1, 2)
## [1] 3A função sum() recebeu os argumentos 1 e 2, somou os dois valores e devolveu o resultado dessa operação: o valor 3.
Falaremos mais sobre funções na Seção 3.11.
Exercícios
1. Qual a diferença entre os códigos abaixo?
# Código 1
33 / 11
# Código 2
divisao <- 33 / 112. Multiplique a sua idade por 12 e salve o resultado em um objeto chamado idade_em_meses. Em seguida, multiplique esse objeto por 30 e salve o resultado em um objeto chamado idade_em_dias.
3. Por que o nome meu-objeto não pode ser utilizado para criar um objeto? O que significa a mensagem de erro resultante?
meu-objeto <- 1
## Error in meu - objeto <- 1: object 'meu' not foundOu com um ponto.↩︎