Primeiros Passos com o R
|
Parte 1 - Histórico e Primeiro contato
O R é uma linguagem de programação voltada para fins estatísticos, isto é, focada em métodos para análise de dados que desde de sua criação foi amplamente difundida no meio acadêmico por ser gratuita. Contudo, saber utilizar a linguagem e suas principais ferramentas tem se tornado uma habilidade solicitada por aqueles que buscam profissionais com capacidades analíticas por se tratar de uma importante linguagem para ciência de dados e que, por esse motivo, vem se popularizando.
O potencial do R é alto não só graças a forma da linguagem mas também por ser gratuito, possível instalar e utilizar em diversos sistemas operacionais e por possuir bibliotecas com funções para análise de dados provenientes de áreas de estudo específicas, os chamados pacotes. Uma série de pacotes é instalada junto com o R, mas muitos outros estão disponíveis na rede de distribuição do R (CRAN). Atualmente, existem mais de 10 mil pacotes disponíveis.
O objetivo deste material é apresentar, de forma breve, as principais características e o básico para se fazer uso da linguagem
A linguagem R foi criada em 1993 por Ross Ihaka e Robert Gentleman no Departamento de Estatística da Universidade de Auckland, na Nova Zelândia.
O R foi desenvolvido a partir da Linguagem S, criada na AT&T Bell Labs por John Chambers, Rick Becker e Allan Wilks em 1976. Atualmente o R é desenvolvido pela equipe de Desenvolvimento do R (R Core Team), da qual John Chambers é um membro. O código fonte para o ambiente de software R é escrito principalmente em C, Fortran e R e está disponível gratuitamente sob a licença GNU General Public.
Assista ao vídeo “R”eflexões: um pouco de história e experiências com o R - Paulo Justiniano Ribeiro Jr.
Ao instalar o R é possível utilizar a interface de linha de comando nativa, contudo há também várias interfaces gráficas que auxiliam o trabalho em R, como o RStudio.
Ao se trabalhar com R é interessante utilizar uma interface de desenvolvimento com o objetivo de facilitar o trabalho de forma a melhorar a visualização do código, instalação de pacotes, visualização de dados, dentre outras tarefas importantes para usuários R.
O RStudio é um programa com uma interface mais amigável para se trabalhar com R. Possui vasta documentação gratuita na internet e está disponível para os mais famosos sistemas operacionais. Existem outras interfaces para se trabalhar com R, todavia abordaremos apenas o RStudio pois ele fornece a maioria dos recursos necessários e desejáveis para uma boa interface.
Vejamos o aspecto da interface:
Para obter todos os atalhos da interface digite pressione ALT+SHIFT+K.
As imgagens representam o aspecto padrão do Rstudio. Contudo a disposição dos planos, cores e fontes são customizáveis e podem ser modificadas em Tools > Global Options
.
Ao iniciar um trabalho com R o primeiro passo é definir o diretório de trabalho, isto é, a pasta do computador onde estão os arquivos que importaremos e para onde vão os arquivos que exportaremos. Fazemos isso através do comando setwd()
e dentro da função especificamos o caminho até a pasta. Outra forma de realizar a mesma tarefa é através do atalho CTRL+SHIFT+H
.
Com a função getwd()
verificamos o diretório atual.
## [1] "/home/lacf14/Área de Trabalho/R post"
Um script é um arquivo de texto com um conjunto de instruções para que uma tarefa seja executada em determinado aplicativo. Através de File > New file > R script
ou CTRL+SHIFT+N
iniciamos um script R, isto é, um arquivo com extensão .R.
Os scripts são mostrados através de abas no editor do Rstudio. Lembre-se de salvar o script no diretório de trabalho com um nome simples evitando acentos, letras maiúsculas e símbolos.
Quando digitamos comandos no editor e pressionamos CTRL+ENTER
o código é executado e o resultado é mostrado no console. Caso digitemos o código diretamente no console, ele também será executado porém não será salvo no script.
Uma boa prática é comentar passo a passo o script para que facilite o entendimento após certo tempo de trabalho ou mesmo o acesso de outros contribuidores. No R comentários são adicionados após o símbolo #, de forma que tudo após o símbolo não será interpretado como código.
Os operadores aritméticos servem para realizar operações matemáticas básicas. As representações das operações básicas em R são:
Operador | Operação |
---|---|
+ | Adição |
- | Subtração |
* | Multiplicação |
/ | Divisão |
^ | Potência |
exp() | Exponencial |
sqrt() | Raiz quadrada |
factorial() | Fatorial |
log() | Logaritmo |
abs() | Valor absoluto |
round() | Arredondamento |
ceiling() | Arredondamento para cima |
floor() | Arredondamento para baixo |
Os operadores seguem uma hierarquia, ou seja, uma ordem de precedência. Inicialmente são efetuadas as operações entre parênteses seguindo a ordem: exponenciação, multiplicação/divisão e por fim adição/subtração.
Para utilizar os operadores no R basta digitar os valores e a operação diretamente no console (caso queira ver somente o resultado) ou no script (caso deseje salvar o código num arquivo texto .R).
Experimente:
# Adição
1+1
# Subtração
5-4
# Multiplicação
2*2
# Divisão
100/5
# Exponenciação
5^5
# Potência
exp(10)
# Raiz quadrada
sqrt(81)
# Fatorial
factorial(4)
# logaritmo base e
log(10)
# logaritmo base 10
log(10, base = 10)
Podemos armazenar resultados de interesses em variáveis, também chamadas de objetos, para que não seja necessário repetir a operação toda vez que necessitarmos de um resultado específico.
Para atribuir valores à variáveis, utiliza-se o símbolo “<-”, lê-se “recebe”. Por exemplo, caso haja uma variável nomeada como x, poderíamos escrever algo como: x <- 10; a partir deste momento, na memória do computador, x vale 10 e todas as operações são válidas. Veja:
## [1] 10
## [1] 11
Outro exemplo:
## [1] 0.9327987
## [1] 0.9327987
Os objetos que armazenam valores ficam na memória RAM, logo, são temporários. Para listar as variáveis criadas utiliza-se o comando ls()
e para remover uma variável da memória o comando rm(nome_da_variavel)
.
Para remover todas as variáveis, usa-se o comando rm(list = ls())
, este comando deve ser usado com muito cuidado, pois apaga todas as variáveis criadas sem perguntar. Veja:
## [1] "x" "y"
## [1] "y"
## character(0)
Digamos que terminamos nosso script, todas as tarefas foram realizadas. Nos resta agora salvar as alterações finais.
Ao fazer isso NÃO salvamos o conteúdo das variáveis, apenas como fizemos para obtê-las, ou seja, ao reabrir o R e utilizar o comando ls()
, não haverá nada.
Quando são poucos dados e o processo para obtenção das variáveis não é custoso, não há mal nisso. Contudo quando o processo para obtenção leva tempo, uma alternativa é utilizar a opção disponível em Session > Save Workspace As...
, ao fazer isso salvamos um arquivo de extensão .Rdata que contém todos os objetos criados durante uma sessão.
Desta forma se precisamos continuar de onde paramos, basta abrir o script e o Rdata, e todas as variáveis serão carregadas no R. Quando o R é iniciado em um diretório com um arquivo .Rdata, as variáveis salvas são automaticamente carregadas.
Ao realizar este processo geramos também um arquivo de extensão .Rhistory. Se trata de um arquivo texto que contém todos os comandos que foram digitados no console, ou seja, um histórico do que foi executado.
Funções são códigos encapsulados para realização de uma tarefa. Utilizando uma função faz com que não seja necessário escrever e copiar o código todas as vezes que precisar executar aquela operação.
Imagine um caso simples:
Este exemplo parece simples, mas pense em casos em que temos tarefas mais complexas que uma média em que há necessidade de replicar mais de 20 vezes; se torna inviável não utilizar uma função.
Funções R têm a seguinte forma: funcao(argumento1, argumento2, ...)
. Argumentos são os parâmetros para que a função funcione corretamente.
A lista de parâmetros, funciona como a interface de comunicação, isto é, de passagem de dados do usuário para a função. Portanto, o usuário fornece o material e a função trabalha para retornar o resultado final.
No R existem dois tipos de argumento: aqueles em que o usuário é obrigado a informar o valor do parâmetro (senão a função não funciona) e aqueles em que tal prática é opcional (pois há um valor “default” fixado na função). Na dúvida sempre verifique a documentação da função para evitar problemas.
Na documentação você encontra a finalidade da função, a função em si, todos os argumentos, a descrição de cada argumento, referências, funções relacionadas e também um exemplo prático genérico.
Para buscar a documentação use: ?funcao
ou help(funcao)
. Para funções que contenham o termo “palavra”, basta usar help.search("palavra")
. Experimente também os comandos help.start()
e RSiteSearch("palavra")
.
Algumas funções R importantes são:
Função | Tarefa |
---|---|
c() | Cria um Vetor |
setwd() | Muda o Diretório de Trabalho Atual |
getwd() | Mostra o Diretório de Trabalho |
dir() | Lista os Arquivos do Diretório de Trabalho Atual |
sessionInfo() | Mostra algumas informações da sessão |
install.packages() | Instala um pacote |
library() | Carrega um pacote |
require() | Carrega um pacote |
example() | Mostra exemplos de alguma função |
print() | Imprime o resultado de uma variável |
q() | Fecha a Sessão |
objects() | Exibe objetos criados |
str() | Mostra a estrutura de um objeto |
Funções podem ser criadas pelo usuário através da função function()
:
nome_da_funcao <- function(argumento1, argumento2){
corpo_da_funcao # O que fazer com os argumentos informados pelo usuário
}
Veja um exemplo de função para obter a média entre 2 números:
Utilizando-a:
## [1] 2.5
Não há necessidade de utilizar a sintaxe argumento = valor do argumento
desde que os valores correspondentes sejam colocados em ordem correta, isso é válido para qualquer função R. Porém é altamente recomendável, principalmente a usuários iniciantes, sempre escrever o argumento e o valor.
## [1] 2.5
Além das funções temos também os pacotes. Pacotes R são bibliotecas contendo funções e dados importantes para alguma finalidade específica. Por exemplo, o pacote ggplot2
contém funções específicas para geração de gráficos, o pacote gamlss
possui funções para ajuste de modelos de regressão da classe GAMLSS, dentre diversos outros.
Existem 4 tipos de pacote:
O R-base, que contém as funções principais disponíveis. Não precisa ser instalado nem carregado.
Os pacotes recomendados, que são instalados junto com o R mas que não são carregados. Como o MASS
, lattice
, dentre outros.
Pacotes contribuídos, também chamados de pacotes oficiais, que não vem com o R, então devem ser instalados e carregados. A lista destes pacotes está no CRAN (Comprehensive R Archive Network).
Pacotes não oficiais, que podem ser instalados por outros meios como arquivos comprimidos ou repositórios no github, por exemplo. Normalmente proprietários de pacotes não oficiais fornecem instruções de como proceder para instalar o pacote.
A instalação de pacotes oficiais pode ser feita através da função install.packages()
. E o carregamento do pacote pode ser feito através da função library()
ou require()
. Quando o pacote não foi instalado o require()
retorna FALSE. Além disso, há ainda a possibilidade de acessar uma função de um pacote instalado sem carregar todo o pacote na memória utilizando o operador ::
. Vejamos:
install.packages("ggplot2") # instalando o pacote ggplot2
library(ggplot2) # carregando o pacote
require(ggplot2) # carregando o pacote
ggplot2::ggplot(data = dados, mapping = aes(x=x, y=y))
# utilizando uma função sem carregar o pacote
Como já mencionado, um objeto é uma variável capaz de armazenar qualquer valor ou estrutura de dados. A forma de um objeto define sua classe, e com objetos é possível formar estruturas.
No R temos as classes:
Para verificar a classe de um objeto, temos a função class
:
## [1] "numeric"
## [1] "integer"
## [1] "character"
## [1] "complex"
## [1] "logical"
Os atributos importantes de um objeto podem ser verificados através das funções:
str()
names()
dimnames()
length()
dim()
class()
Recomendo fortemente a leitura dos seguintes materiais, os quais usei como base para produção desse texto:
Críticas e sugestões a este material sempre serão bem vindas.
Para entrar em contato comigo, envie uma mensagem para lineuacf@gmail.com.