\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}
\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}
\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}
\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}
\begin{lstlisting}

> help( help )
\end{lstlisting}



Outros exemplos:\lstset{frame=single}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\begin{lstlisting}

> cax = read.csv(file="exemplo-caixeta.csv")
\end{lstlisting}



Agora se você digitar o nome do objeto:\lstset{frame=single}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}

      <font face="Times New Roman" size="4" align="center">
           João Luís Ferreira Batista 
      </font>
\end{lstlisting}



\lstset{frame=single, language=HTML}
\begin{lstlisting}

      <font face="Times New Roman" size="3" align="center">
           Laboratório de Biometria Ecológica <br> 
           Centro de Métodos Quantitativos <br>
           Departamento de Ciências Florestais <br>
           Escola Superior de Agricultura "Luiz de Queiroz" <br>
           <b>UNIVERSIDADE DE SÃO PAULO</b> <br>
      </font>
\end{lstlisting}



\end{document}
