\documentclass[a4paper, oneside, 10pt]{article}
\usepackage[english]{babel}
\usepackage[unicode]{hyperref}
\usepackage[utf8x]{inputenc}
\usepackage{listings}
\usepackage{longtable}
\date{\today}
\title{}
\author{}
\begin{document}
\section{\texorpdfstring{Objetivo}{Objetivo}}
\label{sec:objetivo}
O objetivo desse curso é fazê-lo adquirir rapidamente certa familiaridade com o software R.
Ao final desse curso você deverá ter atingido dez metas, devendo ser capaz de:
\begin{enumerate}
\item saber que o R não é um ,,aplicativo" mas um \emph{ambiente de trabalho};
\item saber se o R é o software adequada para você;
\item iniciar, salvar e concluir uma sessão no R;
\item ler arquivos de dados tipo CSV;
\item realizar operações matemáticas simples necessárias para criação e transformação de variáveis;
\item obter estatísticas descritivas de variávies;
\item construir gráficos exploratórios simples de análise de dados;
\item construir modelos lineares clássicos;
\item realizar inferências gráficas e numéricas nos modelos lineares; e
\item conhecer as fontes para você continuar se desenvolvendo no R.
\end{enumerate}
\section{\texorpdfstring{1. O Esquema R}{1 O Esquema R}}
\label{sec:1_o_esquema_r}
O R \textbf{não é um ,,aplicativo"} que lhe possibilita através de uma interface gráfica amigável realizar algumas tarefas sem saber exatamente o que está fazendo.
O R é um \textbf{ambiente de trabalho para realização de análises estatísticas}.
Como software, suas características principais são:
\begin{itemize}
\item \textbf{INTERFACE:} o R é uma interface para análises de dados, criando um ambiente de trabalho.
\item \textbf{INTERATIVIDADE:} essa interface é interativa, isto é, você digita comandos e obtem os resultados.
\item \textbf{FUNCIONAL:} a linguagem \textbf{S}, a linguagem que se fala dentro do R, é uma \emph{linguagem funcional}, isto é, todas as análises e ações são realizadas por \emph{funções}.
\item \textbf{ORIENTAÇÃO PARA OBJETOS:} a linguagem \textbf{S} é uma linguagem de programação orientada para objetos, isto é, todas as \emph{entidades} no ambiente R (dados, análises, gráficos, funções) são efetivamente objetos.
\item \textbf{MODULAR:} o R é composto por módulos, que são chamados de pacotes (\textbf{packages}). O pacote básico traz a funcionalidade necessária para as análises matemáticas e estatísticas mais usuais. Existem literalmente milhares de outros pacotes para realizar análises específicas nas mais diversas áreas do conhecimento científico.
\item \textbf{COLABORATIVO:} o R é um esforço mundial de programação em código aberto.
\end{itemize}
\\\begin{longtable}{|l|}
\hline
\multicolumn{1}{|c|}{\textbf{ Nesse ponto você já deve ter atingido a meta 1. }} \\
\hline
\\
\hline
\multicolumn{1}{|c|}{\textbf{ Se isso não aconteceu, re-leia o material acima e realize uma profunda meditação. }} \\
\hline
\\
\hline
\textbf{ Se mesmo assim você não alcançou a meta 1, procure um amigo que entenda de computação para traduzir o que você leu acima. Nesse caso, o curso está deixando de ser relâmpago. } \\
\hline
\end{longtable}
\\
\section{\texorpdfstring{2. Filosofia de trabalho ou o R é para mim?}{2 Filosofia de trabalho ou o R e para mim}}
\label{sec:2_filosofia_de_trabalho_ou_o_r_e_para_mim}
Do ponto de vista da análise de dados, o R tem uma filosofia que o diferencia radicalmente dos outros softwares estatísticos:
\begin{itemize}
\item \textbf{ANALISAR DADOS É PROGRAMAR COM DADOS:} toda a análise de dados deve ser pensada como a construção de programa que ao ser executado gera a análise esperada.
\end{itemize}
\textbf{PORTANTO}, reflita nos seguintes pontos antes de prosseguir:
\subsection{\texorpdfstring{O R não é para você!}{O R nao e para voce}}
\label{sec:o_r_nao_e_para_voce}
Você pode ter certeza que o R não é para você se:
\begin{itemize}
\item Você não quer aprender uma linguagem e realizar análises utilizando comandos.
\item Você acredita que análise estatística é um simples protocolo para obter alguns resultados numéricos.
\item Você acredita que para cada situação ou conjunto de dados existe A análise estatística correta.
\item Você não sabe o que é \textbf{análise estatística baseada em modelos} e não está nenhum pouco interessado em saber.
\end{itemize}
\subsection{\texorpdfstring{Não perca seu tempo com o R!}{Nao perca seu tempo com o R}}
\label{sec:nao_perca_seu_tempo_com_o_r}
\begin{itemize}
\item Se você acredita que basta aprender algumas receitas no R para depois copiá-las quando quiser realizar as mesmas análises, sem entender realmente o que você está fazendo: NÃO PERCA SEU TEMPO COM O R, APRENDA UM SOFTWARE AMIGÁVEL.
\end{itemize}
\subsection{\texorpdfstring{Não se iluda com o R!}{Nao se iluda com o R}}
\label{sec:nao_se_iluda_com_o_r}
\begin{itemize}
\item Se você imagina que é possível ,,tolerar essa coisa de programação com dados" por um tempo, pois, um dia, alguém vai desenvolver uma interface amigável e aí você já conhecerá o R e tudo será mais fácil.
\item Não se iluda!!! Alguém pode até desenvolver uma interface amigável (de fato, já existe pelo menos uma). Mas a equipe de desenvolvedores do R não está interessada em ,,oficializar" interfaces amigáveis.
\item O R não é um software comercial. Não há interesse em atrair usuários que não compartilhem da sua filosofia de trabalho.
\end{itemize}
\\\begin{longtable}{|l|}
\hline
\multicolumn{1}{|c|}{\textbf{ Nesse ponto você já deve ter atingido a meta 2. Mas cuidado com o auto-engano! }} \\
\hline
\end{longtable}
\\
\section{\texorpdfstring{3. Iniciando, Gravando e Concluindo}{3 Iniciando Gravando e Concluindo}}
\label{sec:3_iniciando_gravando_e_concluindo}
Nesse curso assumimos que você já tem o R instalado e funcionando no seu computador. Não será discutida a instalação, pois essa operação é análoga a instalação de qualquer software no sistema operacional que você trabalha. Para obter o R e informações de como instalá-lo, visite o site: \url{http://www.r-project.org/} .
Para iniciar o R você deve:
\begin{itemize}
\item \textbf{No Ruindows:} realizar um clique duplo no ícone do R no seu ,,desktop" ou procurar o R na lista de programas instalados a partir do menu ,,Iniciar".
\item \textbf{No Linux:} criar um diretório ou se dirigir a um diretório já criado e executar o comando ,,R".
\end{itemize}
Apesar das diferenças de interface devido a o sistema operacional, ao iniciar o R você deverá obter uma janela muito parecida com a seguinte janela:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
R version 2.7.0 (2008-04-22)
Copyright (C) 2008 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
R é um software livre e vem sem GARANTIA ALGUMA.
Você pode redistribuí-lo sob certas circunstâncias.
Digite 'license()' ou 'licence()' para detalhes de distribuição.
R é um projeto colaborativo com muitos contribuidores.
Digite 'contributors()' para obter mais informações e
'citation()' para saber como citar o R ou pacotes do R em publicações.
Digite 'demo()' para demonstrações, 'help()' para o sistema on-line de ajuda,
ou 'help.start()' para abrir o sistema de ajuda em HTML no seu navegador.
Digite 'q()' para sair do R.
[Área de trabalho anterior carregada]
>
\end{lstlisting}
\subsubsection{\texorpdfstring{A Linha de Comando}{A Linha de Comando}}
\label{sec:a_linha_de_comando}
O R é uma linguagem interativa, ou seja, que permite ao usuário enviar um comando por vez e receber o resultado\footnote{é possível também de executar um lote de comandos, mas neste wiki trabalharemos apenas com o modo interativo.}. Para isso, usamos a linha de comando, que tem o sinal ,,\texttt{\textgreater }" quando o R está pronto para receber um comando.
Os outros dois estados da linha de comando são o de execução e o de espera para a conlusão do comando. No modo de execução não é exibido nenhum sinal e não é possível digitar outro comando. Você só perceberá isso se der um comando que tenha um tempo de execução muito longo. Experimente o seguinte comando:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> for(i in 1:10000) prod(1:i)
>
\end{lstlisting}
O estado de espera ocorre quando o usuário envia um comando incompleto, o que é indicado por um sinal de ,,\texttt{+}":\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> log(1
+ )
[1] 0
>
\end{lstlisting}
Na primeira linha, não fechamos os parênteses da função \texttt{log} e demos \emph{enter}. O R responde com o sinal de espera (\texttt{+}), indicando que o comando está incompleto. Digitando o parêntese que falta e apertando a tecla \emph{enter} novamente o R retorna o resultado do comando, precedido de um índice numérico.
Ao longo desse curso, os exemplos mostrados dentro do R (como o exemplo acima) são totalmente funcionais. Você deveria ser capaz de digitá-los no seu computador, mas os resultados apresentados pelo R nem sempre serão mostrados nos exemplos.
Para tirar o máximo proveito desse curso relâmpago, você deve repetir todos os comandos exemplificados e não ter medo de experimentar variações dos exemplos apresentados.
\subsubsection{\texorpdfstring{Primeiros Comandos}{Primeiros Comandos}}
\label{sec:primeiros_comandos}
Se você voltar à mensagem inicial que o R apresenta, verá que ele já lhe ensina alguns comandos:
\begin{itemize}
\item \underline{\texttt{license}}\footnote{Note que para executar o comando é necessário digitar o nome da função seguido de parênteses: \texttt{license()}} detalha as condições de distribuição do R.
\item \underline{\texttt{contributors}} lista a equipe do \emph{time-cerne} de desenvolvimento.
\item \underline{\texttt{citation}} ensina como citar o R em trabalhos acadêmicos.
\item \underline{\texttt{demo}} inicia uma sessão interativa de demonstração do R.
\item \underline{\texttt{help}} para obter uma página de ajuda on-line.
\item \underline{\texttt{help.start}} para iniciar um navegador de internet com as páginas de auxílio.
\item \underline{\texttt{q}} é o comando para encerrar a sessão e sair do R ( no inglês q = quit ).
\end{itemize}
\subsubsection{\texorpdfstring{Comando mais utilizado no R: help}{Comando mais utilizado no R help}}
\label{sec:comando_mais_utilizado_no_r_help}
Da mesma forma que pessoas pouco letradas pensam que pessoas cultas possuem dicionário só para enfeitar a estante de livros e que raramente os utilizam, os iniciantes no R tendem a pensar que a função \underline{\texttt{help}} é para iniciantes.
Ledo engano!! Até os maiores experts em R utilizam o comando \underline{\texttt{help}} com frequência, pelo simples fato que a quantidade de funções e comandos no R é tão grande que é humanamente impossível alguém conhecer todos eles e com todos os seu detalhes.
Use e abuse da função \underline{\texttt{help}}. Para obter ajuda da própria função utilize o comando:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> help( help )
\end{lstlisting}
Outros exemplos:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> help( "*" ) # auxílio sobre o símbolo "*"
> help( sin ) # auxílio sobre a função "sin" = seno
> ?sin # variante da função "help"
> help( datasets ) # auxílio sobre os conjuntos de dados (datasets) que vêm com o R
\end{lstlisting}
\subsubsection{\texorpdfstring{Objetos no R}{Objetos no R}}
\label{sec:objetos_no_r}
Como foi dito, no R tudo é considerado um objeto. Até mesmo as funções que você vem utilizando são objetos.
Para ver um objeto no R, basta digitar o seu \textbf{NOME}. O nome de uma função é o comando sem os parênteses:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> help
> q
> citation
\end{lstlisting}
No R é fácil criar objetos numéricos\footnote{Nota: a maioria dos comandos nesse curso são mostrados \textbf{SEM} os resultados apresentados pelo R}:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> x = 2
> x
> y = 7
> y
> z = x * y
> z
> w = x - y
> w
\end{lstlisting}
Vejamos alguns exemplos com objetos vetoriais:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> k = c(1.3, -5, 6.7, 4.8)
> k
> x * k
> m = c(0, 1, 1, 0, 1, 1)
> m
> m * k
\end{lstlisting}
\subsubsection{\texorpdfstring{A Área de Trabalho}{A Area de Trabalho}}
\label{sec:a_area_de_trabalho}
Você deve imaginar que ao iniciar uma sessão do R e criar uma série de objetos, você está fazendo isso numa ÁREA DE TRABALHO (\textbf{workspace}).
Para saber quais objetos você criou no seu workspace use a função:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> ls()
\end{lstlisting}
Para apagar os objetos indesejados, utilize a função \underline{\texttt{rm}}, fornecendo os objetos que você deseja apagar:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> rm(x, y, z, w)
> ls()
\end{lstlisting}
É importante lembrar que ao criar os objetos, o R não grava automaticamente o workspace no seu disco. Fica tudo na memória do computador. Basta uma interrupção momentânea de energia e você perde tudo. Por isso, é importante lembrar de periodicamente gravar o seu workspace, principalmente nas sessões mais longas:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> save.image() # grava o seu workspace com o nome genérico: ".RData"
> save.image(file="minha_sessao_inicial_de_R.RData") # grava o seu workspace com o nome indicado
\end{lstlisting}
Lembre-se que na maioria dos sistemas operacionais, arquivos cujo o nome se inicia com um ponto (como ,,.RData") são arquivos ocultos!
\\\begin{longtable}{|l|}
\hline
\multicolumn{1}{|c|}{\textbf{ Nesse ponto você deve ter alcançado a meta 3. }} \\
\hline
\\
\hline
\multicolumn{1}{|c|}{\textbf{ Inseguro? Experimente criar uma nova área de trabalho, criando variações das operações acima e gravando o workspace. Inicie uma nova sessão no workspace que foi gravado! }} \\
\hline
\end{longtable}
\\
\section{\texorpdfstring{4. Lendo Dados para Dentro do R: Formato CSV}{4 Lendo Dados para Dentro do R Formato CSV}}
\label{sec:4_lendo_dados_para_dentro_do_r_formato_csv}
O R é um ambiente para análise de dados. Não é um ambiente para \textbf{digitação} ou \textbf{organização} dos seus dados.
O aplicativo mais utilizado para digitar e organizar os dados são as \textbf{planilhas eletrônicas}, como o Excell e assemelhados. As planilhas conseguem gravar os dados em vários formatos, além do formato nativo da planilha\footnote{No Excell, o formato nativo é o XLS}.
\subsection{\texorpdfstring{Formato CSV}{Formato CSV}}
\label{sec:formato_csv}
No caso do R, o melhor é gravar os dados no formato CSV (CSV = \emph{Comma-Separeted Values}).
O formato CSV consiste em uma única tabela (spreadsheet) da sua planilha eletrônica, onde os valores são gravados linha-a-linha, sendo que numa mesma linha os valores são separados por vírgulas.
O formato UNIVERSAL de tabela de dados para análise estatística é o seguinte:
\begin{itemize}
\item cada \textbf{LINHA} é uma observação,
\item cada \textbf{COLUNA} é uma variável ou atributo que foi tomado em cada observação.
\end{itemize}
No formato CSV, cada linha será uma observação e as colunas serão separadas por vírgulas.
\subsection{\texorpdfstring{Lendo um Arquivo CSV}{Lendo um Arquivo CSV}}
\label{sec:lendo_um_arquivo_csv}
Como exemplo trabalharemos com um arquivo que apresenta três parcelas, cada uma em um ,,caxetal" diferente. As primeiras linhas desse arquivo formam a seguinte tabela:
\textless csv\textgreater
,,local",,,parcela",,,arvore",,,fuste",,,cap",,,h",,,especie"
,,chauas",1,1,1,210,80,,,Myrcia sulfiflora"
,,chauas",1,3,1,170,80,,,Myrcia sulfiflora"
,,chauas",1,4,1,720,70,,,Syagrus romanzoffianus"
,,chauas",1,5,1,200,80,,,Tabebuia cassinoides"
,,chauas",1,6,1,750,170,,,indet.1"
,,chauas",1,7,1,320,80,,,Myrcia sulfiflora"
,,chauas",1,8,1,480,160,,,Tabebuia cassinoides"
,,chauas",1,9,1,240,140,,,Tabebuia cassinoides"
\textless /csv\textgreater
Grave o arquivo no diretório que estiver trabalhando com o R: \href{media/publico/tutoriais/r-relampago/exemplo-caixeta.csv}{exemplo-caixeta.csv}.
Esse arquivo pode ser visualizado em qualquer editor de textos, pois o formato CSV é um formato texto:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
"local","parcela","arvore","fuste","cap","h","especie"
"chauas",1,1,1,210,80,"Myrcia sulfiflora"
"chauas",1,3,1,170,80,"Myrcia sulfiflora"
"chauas",1,4,1,720,70,"Syagrus romanzoffianus"
"chauas",1,5,1,200,80,"Tabebuia cassinoides"
"chauas",1,6,1,750,170,"indet.1"
"chauas",1,7,1,320,80,"Myrcia sulfiflora"
"chauas",1,8,1,480,160,"Tabebuia cassinoides"
"chauas",1,9,1,240,140,"Tabebuia cassinoides"
\end{lstlisting}
Note nos seguintes pontos:
\begin{itemize}
\item A primeira linha do arquivo contem o nome das variáveis ou nome das colunas da tabela.
\item Os valores de cada variável (coluna) estão seprados por vírgulas.
\item As ,,palavras" estão envoltas em aspas duplas (,,).
\end{itemize}
Para ler esse arquivo no R, basta utilizar a função \underline{\texttt{read.csv}}.
Cuidado!! Se você digitar simplesmente:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> read.csv(file="exemplo-caixeta.csv")
\end{lstlisting}
as linhas do arquivo aparecerão na tela mas não serão gravadas em nada.
É necessário gravar a leitura do arquivo num \textbf{objeto}:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> cax = read.csv(file="exemplo-caixeta.csv")
\end{lstlisting}
Agora se você digitar o nome do objeto:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> cax
\end{lstlisting}
o R lhe apresentará todas as 198 linhas de dados!!
Para visualizar apenas as primeiras linhas do dataframe (objeto de dados) use o comando \underline{\texttt{head}}:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> head(cax)
local parcela arvore fuste cap h especie
1 chauas 1 1 1 210 80 Myrcia sulfiflora
2 chauas 1 3 1 170 80 Myrcia sulfiflora
3 chauas 1 4 1 720 70 Syagrus romanzoffianus
4 chauas 1 5 1 200 80 Tabebuia cassinoides
5 chauas 1 6 1 750 170 indet.1
6 chauas 1 7 1 320 80 Myrcia sulfiflora
\end{lstlisting}
\subsection{\texorpdfstring{Problema da Planilha ou do CSV}{Problema da Planilha ou do CSV}}
\label{sec:problema_da_planilha_ou_do_csv}
Um grande problema surge quando se utiliza uma planilha eletrônica onde o \textbf{separador decimal} também é a vírgula.
Nesse caso, o arquivo CSV será uma grande confusão, pois a vírgula não só delimitará cada coluna da tabela de dados como também indicará o separador decimal do números que não forem inteiros.
Dois aspectos devem ser considerados:
\begin{itemize}
\item PRIMEIRO: jamais digitar dados com marcador decimal (no Brasil a vírgula). Essa é uma regra importante, pois a maior parte dos erros de digitação envolvem a utilização do marcador decimal na definição dos números. Se você mediu o diâmetro de uma árvore em centímetros com uma casa decimal, anote os dados em milímetros.
\item SEGUNDO: se a digitação com marcador decimal se tornou inevitável\footnote{Você vai se arrepender disso depois!!} e você utilizou a \textbf{vírgula} como marcador decimal, ao gravar o arquivo CSV, procure fazer com que a planilha utilize um outro símbolo para separação de valores, como por exemplo o \textbf{ponto-e-vírgula (;)}. A maneira de fazer isso depende da planilha que você estiver utilizando.
\end{itemize}
O arquivo \href{media/publico/tutoriais/r-relampago/exemplo-caixeta-2.csv}{exemplo-caixeta-2.csv} é um exemplo de arquivo CSV com ponto-e-vírgula como separação de valores. No R, esse arquivo deverá ser lidos com o argumento \underline{\texttt{sep}} definindo o símbolo usado na separação de valores:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> cax2 = read.csv(file="exemplo-caixeta-2.csv",sep=";")
> head( cax2 )
\end{lstlisting}
A página de auxílio da função \underline{\texttt{read.csv}} detalha diferentes formas de leitura de dados que podem ser utilizadas no R.
\section{\texorpdfstring{5. Manipulando e Criando Variáveis}{5 Manipulando e Criando Variaveis}}
\label{sec:5_manipulando_e_criando_variaveis}
\subsection{\texorpdfstring{Entendendo um Data Frame no R}{Entendendo um Data Frame no R}}
\label{sec:entendendo_um_data_frame_no_r}
O comando \underline{\texttt{head}} sempre apresenta as primeiras linhas da \textbf{tabela de dados} (\emph{data frame}).
\begin{itemize}
\item As colunas da tabela (variáveis) são mostradas pelos nomes que estavam na primeira linha do arquivo CSV.
\item As linhas da tabela (observações) são geralmente numeradas. Note que a primeira coluna de números não é uma variável! Ela indica cada linha do arquivo CSV, ou seja cada observação. No R, as linhas do data frame (observações) também devem ter nomes únicos. Se o usuário não os fornece, o R simplesmente os nomeia segundo a numeração da ordem em que os dados são lidos.
\end{itemize}
Se quisermos apenas uma variável (coluna) desse data frame, basta unir o nome do data frame (\underline{\texttt{cax}}) ao nome da coluna desejada com o símbolo especial \textbf{,,\$"}:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> cax$local
> cax$cap
\end{lstlisting}
\subsection{\texorpdfstring{Novas Variáveis no Data Frame}{Novas Variaveis no Data Frame}}
\label{sec:novas_variaveis_no_data_frame}
Novas variáveis (colunas) podem ser criadas também utilizando o símbolo ,,\$". Por exemplo:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> pi # constante universal PI
[1] 3.141593
> cax$dap = (cax$cap/10) / pi # cálculo do DAP (cm) a partir do CAP (mm)
> cax$g = (pi/4) * (cax$dap/100)^2 # cálculo da área transversal (m2) a partir do DAP (cm)
> cax$vol.cilindrico = cax$g * (cax$h/10) # cálculo do volume cilíndrico a partir da área transv. e da altura (dm)
> head(cax)
\end{lstlisting}
Note que:
\begin{itemize}
\item A palavra \underline{\texttt{pi}} no R está reservada para representar a constante universal pi.
\item Ao utilizar a expressão \underline{\texttt{cax\$dap =}} estamos criando uma nova variável (coluna) no dataframe \underline{\texttt{cax}} com o nome \underline{\texttt{dap}}, cujos valores serão o resultado da expressão matemática apresentada após o sinal de igualdade. O mesmo acontece com as colunas \underline{\texttt{g}} e \underline{\texttt{vol.cilindrico}}\_.
\end{itemize}
Não há como \textbf{apagar} as variáveis de dentro de um data frame! É necessário criar um novo data frame apenas com as variáveis desejadas, mas isso não é assunto para um curso relâmpago!
\\\begin{longtable}{|l|}
\hline
\multicolumn{1}{|c|}{\textbf{ As metas 4 e 5 foram atingidas? }} \\
\hline
\\
\hline
\multicolumn{1}{|c|}{\textbf{ Se você está inseguro, repita todos os passos dos itens 4 e 5 com os seus próprios dados! }} \\
\hline
\end{longtable}
\\
\section{\texorpdfstring{6. Descrevendo as Observações}{6 Descrevendo as Observaoes}}
\label{sec:6_descrevendo_as_observaoes}
\subsection{\texorpdfstring{Contagens}{Contagens}}
\label{sec:contagens}
A forma mais simples de descrever quantitativamente observações é agrupá-las em categorias e contar quantas observações pertence a cada categoria.
No R a forma mais direta de obter contagens (frequências) é através da função \underline{\texttt{table}}. Tomando como exemplo o dataframe \underline{\texttt{cax}}, podemos nos perguntar quantas árvores foram observadas em cada caixetal (variável \underline{\texttt{local}}):\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> table(cax$local)
\end{lstlisting}
Também é interessante saber o número de árvores por \underline{\texttt{local}} e \underline{\texttt{parcela}}:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> table(cax$local, cax$parcela)
\end{lstlisting}
\\\begin{longtable}{|l|}
\hline
\textbf{Observação:} note que os \textbf{argumentos} de uma função são separados por vírgula (,) \\
\hline
\end{longtable}
\\
Podemos verificar a abundância de cada espécie (\underline{\texttt{especie}}) em cada caixetal (\underline{\texttt{local}}):\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> table( cax$especie, cax$local )
\end{lstlisting}
\subsubsection{\texorpdfstring{Gráficos de Contagem}{Graficos de Contagem}}
\label{sec:graficos_de_contagem}
Dados de contagem também podem ser apresentado na forma de \textbf{gráficos de barra}:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> barplot( table(cax$local) )
\end{lstlisting}
\\\begin{longtable}{|l|}
\hline
\textbf{Observação:} veja que no R você pode construir um comando chamando função dentro de função em vários níveis. No exemplo acima, o resultado da função \underline{\texttt{table}} foi colocado como argumento para a função \underline{\texttt{barplot}}. \\
\hline
\end{longtable}
\\
Formas alternativas de construir esses gráficos são:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> barplot( table(cax$fuste) )
> plot( table(cax$fuste) )
\end{lstlisting}
Um gráfico de abundância das espécies presentes nos três caixetais:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> par( mar=c(5,10,4,2) ) # Define margens do gráfico, aumentando a esquerda
> barplot(sort(table(cax$especie)), horiz=T, las=1, xlab="Abundância") # Gráfico horizontal c/ nomes horizontais
> dev.off() # Fecha a janela gráfica
\end{lstlisting}
\\\begin{longtable}{|l|}
\hline
\textbf{Observação:} no exemplo acima temos um comando com três funções \emph{aninhadas} (\underline{\texttt{table}} dentro de \underline{\texttt{sort}}, que está dentro de \underline{\texttt{barplot}}). \\
\hline
\end{longtable}
\\
Embora seja convencional apresentar o gráfico de abundância com barras, um gráfico na forma de pontos é de construção mais simples, sendo mais informativo:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> dotchart( sort(table(cax$especie)), xlab="Abundância" )
\end{lstlisting}
\subsection{\texorpdfstring{Sumário de Variáveis}{Sumario de Variaveis}}
\label{sec:sumario_de_variaveis}
A função \underline{\texttt{summary}} retorna uma conjunto de estatísticas descritivas (\textbf{sumário}) de todas as variáveis de um data frame de acordo com o seu tipo:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> summary(cax)
\end{lstlisting}
Note que para as variáveis \underline{\texttt{parcela}} e \underline{\texttt{arvore}} esse sumário não faz sentido, uma vez que elas são simples variáveis indentificadoras da parcela e da árvore\footnote{Embora codificadas como números essas variáveis são variáveis nominais}.
Mas o sumário também pode ser obtida para cada variável individualmente:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> summary(cax$dap)
> summary(cax$h)
> summary(cax$especie)
\end{lstlisting}
\subsection{\texorpdfstring{Estatísticas Descritivas}{Estatisticas Descritivas}}
\label{sec:estatisticas_descritivas}
O R também possui funções para as diversas estatísticas descritivas de variáveis quantitativas:\begin{longtable}{|l|l|}
\hline
\multicolumn{1}{|c|}{\textbf{ Estatística Descritiva }} & \multicolumn{1}{|c|}{\textbf{ Nome da Função }} \\
\hline
Média & \multicolumn{1}{|c|}{ \texttt{mean} } \\
\hline
Mediana & \multicolumn{1}{|c|}{ \texttt{median} } \\
\hline
Mínimo & \multicolumn{1}{|c|}{ \texttt{min} } \\
\hline
Máximo & \multicolumn{1}{|c|}{ \texttt{max} } \\
\hline
Amplitude de variação & \multicolumn{1}{|c|}{ \texttt{range} } \\
\hline
Quartis e quantis & \multicolumn{1}{|c|}{ \texttt{quantile} } \\
\hline
Distância Interquartil (\emph{Inter Quarter Range}) & \multicolumn{1}{|c|}{ \texttt{IQR} } \\
\hline
Variância & \multicolumn{1}{|c|}{ \texttt{var} } \\
\hline
Desvio padrão (\emph{Standard Deviation}) & \multicolumn{1}{|c|}{ \texttt{sd} } \\
\hline
Desvio abosluto mediano (\emph{Mean Absolut Deviation}) & \multicolumn{1}{|c|}{ \texttt{mad} } \\
\hline
\end{longtable}
\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> mean(cax$dap)
> mdap = mean(cax$dap)
> mdap
>
> median(cax$dap)
> min(cax$dap)
> max(cax$dap)
> range(cax$fuste)
> quantile(cax$h)
> IQR(cax$h)
> var(cax$h)
> sd(cax$h)
\end{lstlisting}
\section{\texorpdfstring{7. Gráficos Exploratórios}{7 Graficos Exploratorios}}
\label{sec:7_graficos_exploratorios}
O R é um ambiente de trabalho onde a análise gráfica de dados é de fácil execução. Entretanto, é necessário diferenciar dois tipos de gráficos:
\begin{itemize}
\item \textbf{Gráficos para análise de dados:} são gráficos simples que permitam visualizar o mais claro possível padrões presentes nos dados. Esses gráficos são construídos rapidamente no R e as formas de construí-los permitem inúmeras interações com os \textbf{elementos de informação} nos gráficos.
\end{itemize}
\begin{itemize}
\item \textbf{Gráficos prontos para apresentação:} são construídos para inclusão em documentos e trabalhos técnicos e científicos, como forma de ilustrar resultados e conclusões. Gráficos de apresentação são mais elaborados. Sua construção no R exige mais tempo e conhecimento, pois o R não oferece recursos interativos para manipular os \textbf{elementos pictoriais} dos gráficos.
\end{itemize}
Vejamos alguns gráficos para análise exploratória de dados.
\subsection{\texorpdfstring{Histogramas}{Histogramas}}
\label{sec:histogramas}
Histogramas são gráficos tradicionais na análise exploratória de dados, pois nos apresentam um gráfico da distribuição de probabilidade da variável analisada.\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> hist( cax$dap )
> hist( cax$h, col="red" )
> hist( cax$h, col="blue", probability=T )
\end{lstlisting}
Uma possibilidade de gráfico que o R permite é adicionar uma curva de \textbf{densidade probabilística} ao histograma, para melhor estudar o comportamento da variável.\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> hist( cax$dap, probability=T , col="blue")
> lines( density(cax$dap) , col="red")
\end{lstlisting}
Um \textbf{gráfico tipo texto} análogo ao histograma é o tradicional \textbf{gráfico de ramo-folha} da análise exploratória de dados:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> stem(cax$dap)
> stem(cax$h)
\end{lstlisting}
\subsection{\texorpdfstring{Boxplot}{Boxplot}}
\label{sec:boxplot}
Os boxplots são gráficos de uso frequente para se estudar o comportamento das variáveis. Sua construção no R é direta e simples:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> boxplot( cax$dap )
> boxplot( dap ~ local, data=cax )
\end{lstlisting}
Transformar um gráfico de análise em um gráfico de apresentação demanda o conhecimento sobre as ferramentas gráficas presentes no R:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> par( mar=c(5,10,4,2) ) # Altera as margens da janela gráfica
> boxplot( dap ~ especie, data=cax , horizontal=T, las=1) # Boxplot
> dev.off() # Fecha a janela gráfica
\end{lstlisting}
\subsection{\texorpdfstring{Gráfico de Dispersão}{Grafico de Dispersao}}
\label{sec:grafico_de_dispersao}
A função \underline{\texttt{plot}} é a função básica para construção de gráficos de dispersão para duas variáveis quantitativas:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> plot( cax$dap, cax$h )
> scatter.smooth( cax$dap, cax$h )
\end{lstlisting}
\\\begin{longtable}{|l|}
\hline
\multicolumn{1}{|c|}{\textbf{ Você se sente seguro em relação às metas 6 e 7? }} \\
\hline
\multicolumn{1}{|r|}{\textbf{ Não? Então utilize os seus próprios dados para calcular estatísticas descritivas e construir gráficos exploratórios . }} \\
\hline
\end{longtable}
\\
\section{\texorpdfstring{8. Modelos Lineares}{8 Modelos Lineares}}
\label{sec:8_modelos_lineares}
Utilizaremos alguns modelos lineares para estudar a relação entre o DAP (variável \underline{\texttt{dap}}) e a altura total (variável \underline{\texttt{h}}) das árvores dos caxetais.
A função \underline{\texttt{lm}} (\emph{linear model}) é a função utilizada para \textbf{construir} um modelo linear. O primeiro passo é construir um modelo linear gravando-o num objeto na área de trabalho.\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> hipso1 = lm( formula = h ~ dap, data=cax )
> hipso1 = lm( h ~ dap, data=cax )
\end{lstlisting}
O primeiro argumento da função \underline{\texttt{lm}} é uma \textbf{fórmula estatística} (\underline{\texttt{formula = h \textasciitilde{} dap}}) que descreve a variável \underline{\texttt{h}} como variável resposta e a variável \underline{\texttt{dap}} como variável preditora. Ela deve ser lida da seguinte forma: \textbf{modele \underline{\texttt{h}} como uma função linear de \underline{\texttt{dap}}}.
O segundo argumento (\underline{\texttt{data=cax}}) define que as variáveis da fórmula estão no data frame \underline{\texttt{cax}}.
Vejamos o objeto \underline{\texttt{hipso1}}:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> hipso1
\end{lstlisting}
Mas que decepção!! O R não fez nada?
\section{\texorpdfstring{9. Inferência sobre Modelos Lineares}{9 Inferencia sobre Modelos Lineares}}
\label{sec:9_inferencia_sobre_modelos_lineares}
O R fez muita coisa! Ele construiu um modelo linear e o gravou no objeto \underline{\texttt{hipso1}}. A questão agora é o que você deseja saber desse objeto que é um modelo linear?
O primeiro interesse é analisar o comportamento dos resíduos do modelo linear, para verificar se o modelo é apropriado aos dados. Para isso basta utilizar a função \underline{\texttt{plot}} com o objeto \underline{\texttt{hipso1}}.\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> plot( hipso1 )
\end{lstlisting}
O R entra num modo interativo diferente, apresentando sequencialmente, à medida que você tecle \texttt{\textless Return\textgreater }, um gráfico diferente que lhe permite avaliar o comportamento dos resíduos do modelo. Esses gráficos são os gráficos necessários para se verificar as pressuposições básicas do modelo linear clássico.
E para se fazer inferência sobre as estimativas dos coeficientes de regressão e sobre a qualidade do ajuste do modelo? Se utiliza as funções \underline{\texttt{summary}} e \underline{\texttt{anova}}:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> summary( hipso1 )
> anova( hipso1 )
\end{lstlisting}
\subsection{\texorpdfstring{Cada Modelo um Objeto}{Cada Modelo um Objeto}}
\label{sec:cada_modelo_um_objeto}
Você pode ajustar quantos modelos você desejar para estudar a mesma relação.
Podemos considerar que a relação entre DAP e altura é linear na escala logarítmica, assim um modelo apropriado seria:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> hipso2 = lm( log(h) ~ log(dap) , data=cax)
> plot(hipso2)
> summary(hipso2)
\end{lstlisting}
Ou então podemos verificar o modelo conhecido na Mensuração Florestal como \emph{Modelo Schumacher}:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> hipso3 = lm( log(h) ~ I(1/dap) , data=cax)
> plot(hipso3)
> summary(hipso3)
\end{lstlisting}
Alguém aprecia parábolas ?\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> hipso4 = lm( h ~ dap + I(dap^2) , data=cax)
> plot(hipso4)
> summary(hipso4)
\end{lstlisting}
Como podemos visualizar todos esses modelos junto com a relação DAP - altura ?\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> scatter.smooth( cax$dap, cax$h)
> hipso1
> curve( 40.182 + 5.218*x, 0, 26, col="blue", add=T )
>
> hipso2
> curve( exp( 3.2031 + 0.5574*log(x) ), 0, 26, col="red", add=T )
>
> hipso3
> curve( exp( 4.639 - 1.871/x ), 0, 26, col="darkgreen", add=T )
>
> hipso4
> curve( 10.4109 + 11.1879*x - 0.2325*x^2, 0, 26, col="orange", add=T )
\end{lstlisting}
A abordagem mais apropriada é consideramos que cada caxetal talvez tenha uma relação altura-DAP diferente:\lstset{frame=single, language=rsplus}
\begin{lstlisting}
> hipso.plus = lm( h ~ dap * local, data=cax)
> plot( hipso.plus )
> summary( hipso.plus )
\end{lstlisting}
\\\begin{longtable}{|l|}
\hline
\multicolumn{1}{|c|}{\textbf{ As metas 8 e 9 foram alcançadas? }} \\
\hline
\multicolumn{1}{|r|}{\textbf{ Não? Construa mais modelos com os seus próprios dados. }} \\
\hline
\end{longtable}
\\
\section{\texorpdfstring{10. Para onde ir a partir daqui?}{10 Para onde ir a partir daqui}}
\label{sec:10_para_onde_ir_a_partir_daqui}
Bem! Chegamos a nossa meta final: as fontes para continuar se desenvolvendo no R.
\begin{itemize}
\item \textbf{\url{http://www.r-project.org/}} é o site do Projeto R e possui as informações básicas para continuar aprendendo o R. Lá você encontrará as últimas versões do R e terá acesso aos \textbf{milhares} de pacotes que acrescentam funcionalidade extra ao R.
\end{itemize}
\begin{itemize}
\item No site do projeto R, você encontrará também os manuais básicos que são as referências oficiais para o R:
\begin{itemize}
\item An Introduction to R
\item The R language definition
\item Writing R Extensions
\item R Data Import/Export
\item R Installation and Administration
\item R Internals
\item The R Reference Index
\end{itemize}
\end{itemize}
\begin{itemize}
\item Os livros de \textbf{John M. Chambers} também são referências básicas para o R:
\begin{itemize}
\item Chambers, J.M. 2008 \textbf{Software for Data Analysis: Programming with R}. New York: Springer.
\item Chambers, J.M. 2004 \textbf{Programming with Data: A Guide to the S Language}. New YOrk: Springer.
\end{itemize}
\end{itemize}
\begin{itemize}
\item Um livro de R escrito para ecologistas:
\begin{itemize}
\item Crawley, Michael J. 2007. \textbf{The R Book}. New York: John Wiley.
\end{itemize}
\end{itemize}
\begin{itemize}
\item Existe muitos sites onde você poderá aprender mais sobre o R, basta fazer uma busca simples na internet. Dois sites \textbf{em português} que você pode continuar aprendendo o R são:
\begin{itemize}
\item \href{http://cmq.esalq.usp.br/wiki/doku.php?id=biometria:r-tutor:00-inicio}{ Uso da Linguagem R} e
\item \href{http://ecologia.ib.usp.br/bie5782/doku.php}{ Uso da Linguagem R para Análise de Dados Ecológicos}.
\end{itemize}
\end{itemize}
Embora ambos sejam semelhantes no conteúdo, o segundo site é mais didático e está mais atualizado.
\\
\begin{center}
\line(1,0){250}
\end{center}
Essa lista está longe de ser exaustiva!! Existem muitos outros recursos para aprender o R, essas são apenas algumas dicas iniciais.
\\\begin{longtable}{|l|}
\hline
\multicolumn{1}{|c|}{\textbf{ Dez metas alcançadas? }} \\
\hline
\multicolumn{1}{|c|}{\textbf{ Cada meta é um passo. Todo caminho se percorre passo a passo. Continue caminhando! }} \\
\hline
\multicolumn{1}{|c|}{ \textbf{\emph{Be an useR ! Be happy !}} } \\
\hline
\end{longtable}
\\
\section{\texorpdfstring{Autor}{Autor}}
\label{sec:autor}
\lstset{frame=single, language=HTML}
\begin{lstlisting}
João Luís Ferreira Batista
\end{lstlisting}
\lstset{frame=single, language=HTML}
\begin{lstlisting}
Laboratório de Biometria Ecológica
Centro de Métodos Quantitativos
Departamento de Ciências Florestais
Escola Superior de Agricultura "Luiz de Queiroz"
UNIVERSIDADE DE SÃO PAULO
\end{lstlisting}
\end{document}