* [[bie5782:02_tutoriais:tutorial1:start|Tutorial]]
* [[bie5782:01_curso_atual:exercicios1| Exercícios]]
* [[bie5782:03_apostila:01-intro| Apostila]]
* [[bie5782:02_tutoriais:tutorial1_teste:start|TesteTutorial]]
====== 1. Tutoriais de Introdução ao R ======
===== Testando o rdrr interativo =====
===== Testando o IPython Notebook =====
===== O Código é Tudo! =====
Um dos primeiros hábitos que você deve adquirir para trabalhar com o R é **não digitar os comandos diretamente no R**, e sim em um arquivo texto, que chamamos de //script// ou //código//. Na interface gráfica de usuário (R-GUI) do Windows e do MAC há um editor de códigos, que você pode manter aberto, juntamente com a janela do R.
//**__Usuário Linux__**//
A instalação do R no LINUX não inclui uma interface como a do Windows ou do MAC, para que o usuário escolha a sua.
Há várias opções de editores e interfaces de desenvolvimento (IDEs), veja dicas e linques na [[:bie5782:01_curso_atual:material:startinterfaces_para_o_r|seção de material de apoio]].
Se você usa LINUX, pode seguir este tutorial com qualquer editor ou IDE.
A figura abaixo é uma captura de tela do R-GUI do Windows, mas no MAC o editor é similar, e você pode manter a mesma lógica. Deixe sempre uma janela de código aberta acima da janela do R:
{{ :bie5782:02_tutoriais:script_e_r-windows.png |Janelas do r e do script}}
Na figura acima há duas janelas com funcionamentos e objetivos muito diferente;
- a janela da parte superior apresenta um arquivo de texto puro que pode ser editado.
- a janela na parte inferior é o prompt do R, ou seja o programa propriamente dito. Essa janela recebe informações que são processadas pelo R e apresenta o resultado final desse processamento((quando a tarefa solicitada é a representação de um gráfico, uma nova janela é aberta, um dispositivo gráfico)).
Para evitar confusão e perda de trabalho é importante digitar as informações que serão transmitidas ao R (linhas de código) no arquivo texto e ir passando esses comandos ao R.
Tenha certeza que entendeu a diferença entre essas duas janelas, mais a frente iremos falar sobre a importância dessa distinção e de não se trabalhar diretamente na janela do R.
É imprescindível aprender a se organizar dentro da lógica do ambiente de programação, com o risco de perder trabalho ou ficar completamente perdido entre as tarefas que executa.
* Clique com o botão da direita do mouse no link do {{:bie5782:02_tutoriais:regressao.r|script}} e,
* Salve o arquivo em uma pasta ((diretório de trabalho é o nome técnico desta pasta para o R)) conhecida do seu computador
Execute o R e abra o //script// com a opção do menu "Arquivo/Abrir script":
{{ :bie5782:02_tutoriais:abrir_script.png |abra o arquivo de código}}
Vá para a janela do //script//, coloque o cursor na primeira linha e tecle ''Ctrl-r''. O comando é enviado ao R. Faça o mesmo com as duas linhas seguintes.
//**__Para Usuários de MAC__**//
Para enviar comandos do editor de código do R-GUI para o R utilize //Command+Enter// ou //Command+Return//.
Veja o material [[https://cran.r-project.org/bin/macosx/RMacOSX-FAQ.html]]
Selecione as cinco primeiras linhas com o cursor e tecle ''Ctrl-r''. Os comandos são enviados ao R.
{{:bie5782:02_tutoriais:envia_comando_do_script.png|CTRL-R envia comandos do script}}
Agora modifique os dados, alterando a segunda e terceira linhas do //script// para:
area <- c(300, 350, 961, 295, 332, 47, 122, 11, 53, 2749)
riqueza <- c(1, 7, 20, 7, 8, 4, 8, 3, 5, 23)
Salve o //script// com estas modificações.
==== Rodando o script ====
Além de poder enviar as linhas de comando é possível submeter o script integralmente para o R. Você pode fazer isto de duas maneiras:
* 1. Na janela do editor de código, selecione com o mouse ou marque todo o //script// com "Ctrl-a" e depois envie-o para o R com "Ctrl-r"
* **OU**
* 2. Na janela do R digite o comando:
source("regressao.r")
**OBS:** Este comando só funcionará se o arquivo //regressao.r// estiver no diretório de trabalho, que é o nome técnico da pasta para onde o R está direcionado no seu computador. Caso não esteja, aparecerá uma mensagem de erro dizendo que não é possível abrir a conexão solicitada. A seguir veremos com podemos mudar o diretório de trabalho após abrir uma sessão do R.
\\
Por padrão, o ''source'' não mostra na tela os comandos executados nem seus resultados, mas todos os objetos são criados. Verifique os objetos criados por estes comandos no //workspace// do R digitando:
ls()
Se você quiser ver todos os comandos e resultados use:
source( "regressao.r", echo=TRUE, print.eval=TRUE )
Consulte a ajuda do comando ''source'' para entender os argumentos ''echo'' e ''print.eval''.
Agora vamos simular a perda dos objetos: saia do R, respondendo "NÃO" à pergunta "Salvar Área de Trabalho"((não faça isto normalmente!!!, detalhes na [[bie5782:03_apostila:02-entrada#Como o R Guarda os Dados?|apostila]])).
Abra o R de novo. Tudo perdido? Não! Com o código salvo (script) você pode executá-lo novamente, e recuperar todo o trabalho. Repita o procedimento novamente de abrir o arquivo de script e rodá-lo ;-).
==== Escolha seu Editor de Código ===
O editor de códigos do R-GUI no Windows e no Mac é bastante simples e costuma ser uma boa opção inicial para usuários deste sistema. Para esta disciplina ele é suficiente, mas logo que você se acostume com o R é bom buscar um editor ou ambiente integrado de programação com mais recursos.
No Linux não uma há uma [[http://en.wikipedia.org/wiki/GUI|GUI]] padrão para o R, e esta escolha já tem que ser feita no início.
Ou seja, mais cedo ou mais tarde, terá que avaliar as opções de editores de código ou ambientes de programação e escolher uma que lhe agrade.
Na página de material de apoio há uma seção com várias [[http://ecologia.ib.usp.br/bie5782/doku.php?id=bie5782:01_curso_atual:material:start#interfaces_para_o_r|dicas sobre interfaces para o R]] para lhe ajudar.
===== A Melhor Maneira de Executar o R no Windows =====
Antes de começar um novo projeto de análise, crie um diretório para ele, com o menu //"Arquivo/Novo/Pasta"// do windows explorer.
{{ :bie5782:02_tutoriais:cria_pasta_windows.png?700 |}}
{{ :bie5782:02_tutoriais:tutorial1:nova_pasta_documentos.png?700 |crie um diretório de projeto}}
Em seguida execute o R a partir do atalho na área de trabalho ou na barra de ferramentas.
{{:bie5782:02_tutoriais:clique_atalho_r.png|}} {{:bie5782:02_tutoriais:clique_barra_ferram-r.png|}}
Verifique qual é o diretório de trabalho que o R está usando, com o comando:
getwd()
E você verá que ao abrir o R desta maneira ele sempre começará com um mesmo diretório de trabalho, possivelmente em "Meus Documentos", e.g.:
[1] "C:/Documents and Settings/Administrador/Meus documentos"
Para mudar o diretório de trabalho use:
setwd("C:/Documents and Settings/Administrador/Meus documentos/temp1")
**IMPORTANTE:** as barras devem ser no padrão Linux, ou seja, o inverso do usado em Windows.
Verifique se mudança funcionou, com um novo comando ''getwd'':
getwd()
Se seu diretório de trabalho é o desejado, verifique que está vazio, com o comando:
dir()
E também verifique se o //workspace// está vazio com
ls()
Agora baixe o arquivo {{:bie5782:02_tutoriais:letras.rdata|}} para o diretório de trabalho, e carregue-o no //workspace// do R com o comando:
load("letras.rdata")
Verifique agora seu workspace, e salve-o:
ls()
save.image()
Crie alguns outros objetos em seu //workspace//:
pares <- c(2,4,6,8)
impares <- c(1,3,5,7,9)
todos.os.numeros <- c(pares,impares)
Agora saia do R, tomando o cuidado de salvar de novo seu //workspace//.
Para trabalhar novamente no mesmo projeto, abra o diretório correspondente com o Windows Explorer e clique no arquivo ''.RData'':
{{ :bie5782:02_tutoriais:diretorio_com_rdata.png?700 |clique no arquivo .RData}}
{{ :bie5782:02_tutoriais:tutorial1:arquivos_gerados.png?700 |}}
**IMPORTANTE:** certifique-se de que o diretório está com a opção de exibir arquivos ocultos, ou você não verá o arquivo ''.RData'':
{{ :bie5782:02_tutoriais:ligar_mostrar_arquivos_ocultos_windows.png?700 |ligue exibição arquivos ocultos}}
{{ :bie5782:02_tutoriais:tutorial1:arquivos_ocultos.png?700 |}}
Verifique se todos os objetos da última seção estão em seu //workspace//:
ls()
----
Outra solução é criar um atalho para o projeto, indicando o diretório de trabalho na caixa de propriedades do atalho:
{{ :bie5782:02_tutoriais:fazendo_atalho_projeto.png |atalho para o projeto}}
Você pode manter um atalho para cada projeto em andamento em sua área de trabalho.
//**__Para Usuários de LINUX__**//
Em LINUX não há estes problemas, pois basta executar o R na linha de comando (//shell//) a partir do diretório de trabalho (veja na [[bie5782:03_apostila:02-entrada#iniciando_o_r|apostila]]).
Com o uso de editores de código fica ainda mais fácil, consulte o [[bie5782:01_curso_atual:material:start#guia_para_o_ess|guia]] que há em nosso material de apoio.
===== Criando Objetos =====
Os três [[bie5782:03_apostila:02-entrada#Criação de Objetos: Atribuição|operadores de atribuição]] ''<''''-'', ''='' e ''-''''>'' podem ser usados de várias maneiras para criar objetos. Por exemplo, estes comandos:
a <- 1
b <- a
São equivalentes a este:
b <- a <- 1
Ou a este:
a = 1 -> b
Experimente!
===== Listando e Removendo Objetos =====
Várias funções retornam resultados mesmo sem que você forneça argumentos. Nestes casos, basta não escrever entre os parênteses. No caso da função ''ls'', por exemplo, você irá obter a lista de todos os objetos em sua área de trabalho:
A1 <- c(1,2,3)
A2 <- c(10,20,30)
b <- c(A1,A2)
ls()
Consulte a página de ajuda da função ls:
help(ls)
Onde você verá a explicação para o argumento ''pattern''. Execute, então, este comando:
ls(pattern="A")
Para mudar os nomes de objetos e apagar os antigos, experimente:
a.1 <- A1
a.2 <- A2
ls()
rm( list=c("A1","A2") )
ls()
Que tem o mesmo efeito de:
rm(list=ls(pattern="A"))
Ou de
rm(A1,A2)
Verifique!
===== Classes Date =====
Crie objetos com a datas do tri e tetracampeonatos mundiais do Brasil((fonte: [[http://pt.fifa.com/worldcup/archive/|FIFA]] )):
copa.70 <- "21/06/70"
copa.94 <- "17/07/94"
Qual a diferença em dias entre estas datas? A subtração retorna um erro (verifique):
copa.94 - copa.70
Isto acontece porque os objetos são caracteres, uma classe que obviamente não permite operações aritméticas:
class(copa.70)
class(copa.94)
Mas o R tem uma classe para datas, que é ''Date''. Faça a coerção dos objetos para esta classe, verifique se a coerção foi bem sucedida, e repita a subtração:
copa.70 <- as.Date(copa.70,format="%d/%m/%y")
copa.94 <- as.Date(copa.94,format="%d/%m/%y")
class(copa.70)
class(copa.94)
copa.94 - copa.70
**NOTA:** o argumento ''format'' da função ''as.Date'' informa o formato em que está o conjunto de caracteres que deve ser transformado em data, no caso dia/mês/ano (''%d/%m/%y''), todos com dois algarismos. Veja a ajuda da função para outros formatos.
===== Níveis de Fatores =====
Imagine uma escala de herbivoria com os níveis "alto", "médio", "baixo" e "nulo". Vamos criar um objeto que representa o valor desta medida de herbivoria em uma amostra de 14 plantas:
herb <- c("A","M","M","A","A","M","M","B","A","A","A","A","B","A")
E então vamos criar um objeto da classe fator com estes valores:
herb.f <- factor(herb)
Usamos a função ''table'' para contar o número de observações em cada nível do fator, cujo resultado atribuímos a um outro objeto. Os valores são exibidos se digitamos o nome do objeto.
(herb.t <- table(herb.f))
A função para gerar gráficos ''plot'' pode ser aplicada diretamente ao objeto desta tabela:
plot(herb.t)
{{:bie5782:02_tutoriais:tut_fatores.png|}}
Há dois problemas aqui: na tabela e na figura os níveis não estão ordenados, e falta o nível de herbivoria nula. Isto acontece porque, ao criar uma variável de fator a partir de um vetor de valores, o R cria níveis apenas para os valores presentes, e ordena estes níveis alfabeticamente.
Isto pode ser mudado explicitando os níveis e sua ordem com o argumento ''levels'' da função fator:
herb.f <- factor(herb, levels=c("N","B","M","A"))
herb.t <- table(herb.f)
herb.t
plot(herb.t)
**NOTA:** há uma classe para fatores ordenados que poderia se aplicar aqui, mas seu uso tem implicações importantes nos resultados de algumas análises, que no momento não vêm ao caso. Mais informações a respeito na ajuda da função [[http://finzi.psych.upenn.edu/R/library/base/html/factor.html|factor]].
===== Carregando Pacotes =====
Pacotes são conjuntos de funções específicas do R, distribuídos em conjunto. No repositório do R estão armazenadas uma quantidade muito grande de pacotes que geralmente tem funções para um certo conjunto de tarefas associadas (p.ex: análise de padrões espaciais de pontos). Para usar um pacote é necessário entender a diferença entre baixar o pacote (download) do repositório e carregar o pacote na sua área de trabalho. Veja a apostila para mais detalhes se houver ainda dúvidas sobre como usar pacotes
Quais pacotes estão disponíveis na sua instalação de R? Você pode verificar isto com o comando:
library()
Outra maneira é iniciar a interface hipertexto de ajuda com:
help.start()
E escolher o link //"Packages"//, que você terá a lista do pacotes já instalados.
Na interface hipertexto clique no nome de um dos pacotes. Você verá a lista de todos os objetos que este pacote contém.
Quais pacotes estão carregados? Uma maneira simples de descobrir é com o comando:
search()
Agora vamos gerar 15 números sorteados de uma distribuição normal, com média 1 e desvio-padrão=3, e guardar o resultado no onbjeto ''x1'':
x1 <- rnorm(n=15, mean=1, sd=3)
Para fazer um histograma deste valores, há a função ''hist'', do pacote //graphics//:
hist(x1)
Mas há também a função ''truehist'', do pacote //MASS//:
truehist(x1)
Este comando retornará uma mensagem de erro, que avisa que o R não encontrou o objeto ''truehist''. Para que isso não aconteça, é preciso carregar o pacote //MASS//, que já está instalado na distribuição básica do R:
search()
library(MASS)
search()
truehist(x1)