Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
| Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior | ||
| 00_mini_curso:start [2020/09/23 20:09] – code adalardo | 00_mini_curso:start [2020/09/23 20:20] (atual) – link curso adalardo | ||
|---|---|---|---|
| Linha 1: | Linha 1: | ||
| + | ====== Mini Curso ====== | ||
| + | {{: | ||
| + | O objetivo desse mini-curso((criado por --- // | ||
| + | Esse mini-curso foi estruturado para atividades de 8 horas, divididas em dois dias. O primeiro dia é centrado na lógica do ambiente de programação em linha de comando (CLI: Command Line Interface) e o segundo dia na utilização de ferramentas avançadas através da interface gráfica [[http:// | ||
| + | Em grande parte, o material aqui apresentado é um recorte do material contido no nosso wiki [[: | ||
| + | ====== Professores ====== | ||
| + | * // | ||
| + | |||
| + | |||
| + | <WRAP center round box 60%> | ||
| + | //**__Aula Relâmpago__**// | ||
| + | Há em nosso material algo que chamamos de [[01_curso_atual: | ||
| + | </ | ||
| + | ====== O repositório ====== | ||
| + | O '' | ||
| + | * digite '' | ||
| + | * leia o '' | ||
| + | * usar '' | ||
| + | * em '' | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Sintaxe e operações básica no R ===== | ||
| + | A sintaxe básica do R é: | ||
| + | |||
| + | <WRAP center round box 100%> | ||
| + | **'' | ||
| + | </ | ||
| + | |||
| + | Uma forma de ler essa linha de código é: estou atribundo ao objeto // | ||
| + | |||
| + | Uma função executa uma tarefa ou conjunto de tarefas acopladas. Normalmente, | ||
| + | |||
| + | <code rsplus> | ||
| + | ## função para construir sequencias | ||
| + | seq(from=0, to =100, by=10) | ||
| + | |||
| + | ## para construir um gráfico! | ||
| + | plot(x=seq(from=0, | ||
| + | |||
| + | ## note que podemos usar funções dentro de funções para construir os argumentos! | ||
| + | </ | ||
| + | |||
| + | A tradução do código acima é: | ||
| + | |||
| + | - '' | ||
| + | - '' | ||
| + | |||
| + | |||
| + | A última linha de código acima pode ser desmembrado da seguinte forma, tendo a mesma // | ||
| + | |||
| + | <code rsplus> | ||
| + | |||
| + | meux <- seq(from=0, to=100, by=10) | ||
| + | meuy <- seq(to=100, from =0, by=10)*5 | ||
| + | plot(x=meux, | ||
| + | |||
| + | </ | ||
| + | |||
| + | Esse novo código podemos traduzir como: criar o ojbeto '' | ||
| + | |||
| + | Para a inclusão dos argumentos na função há duas maneiras que podem ser combinadas: | ||
| + | |||
| + | * colocar o nome dos argumentos, como feito acima; | ||
| + | * usar os argumentos na ordem definida na função sem indicar o nome; | ||
| + | |||
| + | <code rsplus> | ||
| + | plot(meux, meuy) | ||
| + | </ | ||
| + | |||
| + | * usar ambos critérios: | ||
| + | |||
| + | <code rsplus> | ||
| + | |||
| + | plot(meux, pch=16, y = meuy) | ||
| + | |||
| + | </ | ||
| + | Note que no último caso os argumentos nomeados não precisam estar na ordem definida na documentação da função. Sim, você deve estar perguntando '' | ||
| + | |||
| + | |||
| + | <WRAP center round important 60%> | ||
| + | **__UM ERRO COMUM__** | ||
| + | |||
| + | Quando chamamos um função sem incluir o parênteses o que temos como resultado é que o R mostra o código da função, que nada mais é que um texto. | ||
| + | Digite '' | ||
| + | |||
| + | </ | ||
| + | |||
| + | ==== Atribuições ==== | ||
| + | |||
| + | Um conceito importante é o de atribuir o resultado de uma operação a um objeto. Para isso é necessário utilizar os símbolos de atribuição '' | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== O que devo salvar? ===== | ||
| + | |||
| + | Os usuários de programas padrões (editor de texto, planilhas eletrônicas, | ||
| + | do {{: | ||
| + | ---- | ||
| + | |||
| + | {{page> | ||
| + | |||
| + | ---- | ||
| + | <WRAP center round box 100%> | ||
| + | Você já aprendeu que '' | ||
| + | |||
| + | <code rsplus> | ||
| + | ##################### | ||
| + | ## Código da primeira aula do mini-curso R 2015 | ||
| + | ##################### | ||
| + | ##Tutorial | ||
| + | area <- c(303, 379, 961, 295, 332, 47, 122, 11, 53, 2749) # criando objeto com as áreas dos fragmentos | ||
| + | riqueza <- c(3, 10, 20, 7, 8, 4, 8, 3, 5, 23) # criando objeto com as riquezas associadas | ||
| + | area # mostra os dados do objeto area criado acima | ||
| + | riqueza # mostra os dados do objeto riqueza criado acima | ||
| + | summary(area) | ||
| + | summary(riqueza) | ||
| + | mean(x=area) | ||
| + | varea <- var(area) | ||
| + | varea # mostra a variância calculada acima | ||
| + | sqrt(varea) | ||
| + | sd(x=area) | ||
| + | plot(x=area, | ||
| + | |||
| + | ## Fim! | ||
| + | </ | ||
| + | |||
| + | | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | {{page> | ||
| + | |||
| + | ---- | ||
| + | ===== Socorro ===== | ||
| + | A primeira resposta ao aluno que perguntar algo é: '' | ||
| + | A documentação do R, em um primeiro momento, é árida e muitas vezes difícil de entender. Leia com atenção, as respostas estão lá! Entretanto, é preciso familiaridade com a terminologia e um pouco de intimidade com a linguagem. Isso, só se adquire praticando! | ||
| + | |||
| + | Crie o bom hábito de ler a documentação de todas as funções que utilizar, '' | ||
| + | |||
| + | |||
| + | | ||
| + | ==== help ==== | ||
| + | |||
| + | Vamos olhar a documentação das funções que usamos acima. Há dois jeitos de fazê-lo, usando a função '' | ||
| + | |||
| + | <code rsplus> | ||
| + | help(c) | ||
| + | ## a função c é uma das mais usadas, serve para concatenar valores em um objeto. | ||
| + | |||
| + | ?source | ||
| + | |||
| + | </ | ||
| + | |||
| + | <WRAP center round box 60%> | ||
| + | **__Encontrando as funções__** | ||
| + | |||
| + | Para acessar o help é necessário saber o nome da função. Caso não tenha ideia do nome de uma função básica, por exemplo, a raiz quadrada, a melhor opção é usar o [[https:// | ||
| + | |||
| + | </ | ||
| + | ==== help.start ==== | ||
| + | |||
| + | A função help.start abre a página de help do programa no seu navegador. Nela encontrará toda a documentação que é instalada junto com o R, além das funções dos pacotes que foram instalados na sua máquina. | ||
| + | Para inicia-lo digite | ||
| + | |||
| + | <code rsplus> | ||
| + | ## abrindo a ajuda do R no navegador | ||
| + | help.start() | ||
| + | |||
| + | </ | ||
| + | |||
| + | <WRAP center round box 60%> | ||
| + | **__Atividade__** | ||
| + | |||
| + | * Procure pelo pacote '' | ||
| + | * Procure o pacote '' | ||
| + | * Vá no site do CRAN e | ||
| + | |||
| + | </ | ||
| + | |||
| + | ===== Instalando e carregando pacotes ===== | ||
| + | |||
| + | Existem mais de 7 mil pacotes no R-CRAN, Você já viu como buscá-los no repositório. Agora vamos entender dois conceitos básico na linguagem que muita gente confude: '' | ||
| + | Para usar as ferramentas (geralmente '' | ||
| + | |||
| + | {{page>: | ||
| + | |||
| + | ---- | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Operações Matemáticas ===== | ||
| + | As operações matemáticas simples são apresentadas abaixo, reproduza os comandos para se familiarizar com o código: | ||
| + | <code rsplus> | ||
| + | 4+5 | ||
| + | 4*5 | ||
| + | 2/4 | ||
| + | 2^4 | ||
| + | </ | ||
| + | |||
| + | As regras de precedência são as mesmas da aritmética básica: | ||
| + | |||
| + | <code rsplus> | ||
| + | 2 + 4 * 5 | ||
| + | (2 + 4) * 5 | ||
| + | 2 + 2^2 * 5 | ||
| + | (2 + 2)^2 * 5 | ||
| + | |||
| + | ## tente fazer a operação abaixo em uma calculadora!! | ||
| + | |||
| + | 1 - (1 + 10^(-15)) | ||
| + | </ | ||
| + | |||
| + | ==== Operações matemáticas comuns ==== | ||
| + | |||
| + | <code rsplus> | ||
| + | |||
| + | sqrt(9) | ||
| + | abs(-1) | ||
| + | abs(1) | ||
| + | log(10) | ||
| + | log(10, base = 10) # Logaritmo base 10 | ||
| + | log10(10) | ||
| + | log(10, base = 3.4076) # Logaritmo base 3.4076 | ||
| + | exp(1) | ||
| + | |||
| + | </ | ||
| + | |||
| + | {{page> 02_tutoriais: | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Gerando dados ===== | ||
| + | Vimos que a função '' | ||
| + | |||
| + | <code rsplus> | ||
| + | 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: | ||
| + | |||
| + | <code rsplus> | ||
| + | help(ls) | ||
| + | </ | ||
| + | |||
| + | Onde você verá a explicação para o argumento '' | ||
| + | <code rsplus> | ||
| + | ls(pattern=" | ||
| + | </ | ||
| + | |||
| + | Para mudar os nomes de objetos e apagar os antigos, experimente: | ||
| + | <code rsplus> | ||
| + | a.1 <- A1 | ||
| + | a.2 <- A2 | ||
| + | ls() | ||
| + | rm( list=c(" | ||
| + | ls() | ||
| + | </ | ||
| + | Que tem o mesmo efeito de: | ||
| + | <code rsplus> | ||
| + | rm(list=ls(pattern=" | ||
| + | </ | ||
| + | Ou de | ||
| + | <code rsplus> | ||
| + | rm(A1,A2) | ||
| + | </ | ||
| + | Verifique! | ||
| + | |||
| + | ==== Criando sequencias de valores ==== | ||
| + | |||
| + | Uma das vantagens da linguagem R é que ela opera em vectores, como vimos acima nas funções matemáticas. Para gerar sequencias de valores podemos usar o '' | ||
| + | |||
| + | <code rsplus> | ||
| + | |||
| + | 1:10 | ||
| + | (1:10) * 10 | ||
| + | |||
| + | seq(from=0, to=100, by=10) | ||
| + | seq(from=0, to=100, len=10) | ||
| + | |||
| + | rep(" | ||
| + | rep(c(" | ||
| + | rep(c(" | ||
| + | |||
| + | ## nao criamos nenhum objeto até agora! | ||
| + | ## vamos guardar a próxima sequência em um objeto: | ||
| + | |||
| + | seqABC <- rep(c(" | ||
| + | seqABC | ||
| + | |||
| + | paste(seqABC, | ||
| + | |||
| + | </ | ||
| + | Entendeu essa última função? Veja a documentação do '' | ||
| + | |||
| + | |||
| + | ==== Lógica vetorial ==== | ||
| + | Vetores são a estrutura básica do R, procure sempre raciocinar em vetores e operações vetorias. Por exemplo, para calcular 2 elevado a expoentes de 0 a 10, a lógica de operação escalar é : | ||
| + | <code rsplus> | ||
| + | 2^0 | ||
| + | 2^1 | ||
| + | 2^2 | ||
| + | 2^3 | ||
| + | ... | ||
| + | </ | ||
| + | |||
| + | A lógica da operação vetorial é: | ||
| + | |||
| + | <code rsplus> | ||
| + | 2^(0:10) | ||
| + | </ | ||
| + | ou | ||
| + | <code rsplus> | ||
| + | 2^seq(from=0, | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Tipos de vetores ===== | ||
| + | |||
| + | Já fizemos vetores de duas naturezas: numéricos e caracteres. A diferença entre os dois é que o numérico podemos operar matematicamente, | ||
| + | Veja o código abaixo e veja se entende o que acontece: | ||
| + | |||
| + | {{page> 02_tutoriais: | ||
| + | | ||
| + | |||
| + | |||
| + | numbers, integers, characters & as.Date | ||
| + | {{page> | ||
| + | |||
| + | |||
| + | ===== Além dos vetores ===== | ||
| + | |||
| + | Além dos vetores, outros tipos de objetos são muito utilizados no R, os mais importantes são: (1) matrizes; (2) data frames e (3) listas. As funções para criar esses objetos são: '' | ||
| + | |||
| + | |||
| + | |||
| + | Veja o código abaixo para entender esses objetos: | ||
| + | |||
| + | <code rsplus> | ||
| + | a=1:5 | ||
| + | a | ||
| + | b=factor(rep(c(" | ||
| + | b | ||
| + | c=data.frame(sec=c(" | ||
| + | c | ||
| + | d = matrix(round(runif(36, | ||
| + | d | ||
| + | minha.lista = list(um.vetor=a, | ||
| + | minha.lista | ||
| + | </ | ||
| + | |||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Atributos dos objetos ===== | ||
| + | Os objetos possuem atributos, dois deles já vimos: (1) a classe a que pertence e (2) a natureza das variáveis que o compõem. | ||
| + | |||
| + | ==== Estrutura de um objeto ==== | ||
| + | Essa é uma das funções mais importantes para diagnosticar um objeto. Fornece informações importantes sobre sua estruturação. Antes de rodar o código abaixo, verifique se os objetos estão na sua área de trabalho. | ||
| + | |||
| + | |||
| + | <code rsplus> | ||
| + | ## verficando se quais objetos estão presentes na área de trabalho: | ||
| + | |||
| + | ls() | ||
| + | |||
| + | ## verificando a estrutura dos objetos | ||
| + | |||
| + | str(minha.lista) | ||
| + | str(minha.lista$um.data.frame) | ||
| + | str(d) | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ==== Dimensões de um objeto ==== | ||
| + | |||
| + | As dimensões de um objeto são um atributo importante. Nos indica quanta informação está contida e como esta estruturada. Ela é fornecida pela '' | ||
| + | |||
| + | <code rsplus> | ||
| + | |||
| + | length(b) | ||
| + | length(minha.lista) | ||
| + | dim(minha.lista$um.data.frame) | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Extraindo e Modificando ===== | ||
| + | |||
| + | |||
| + | Para modificar algum elemento de um objeto, use a lógica // | ||
| + | |||
| + | ==== Indexadores ==== | ||
| + | O indexadores definem a posição de um elemento em um objeto e a forma de usá-los depende da classe de objeto que pretende manipular. | ||
| + | |||
| + | <code rsplus> | ||
| + | |||
| + | ######################## | ||
| + | ## Indexacao " | ||
| + | ######################## | ||
| + | x=LETTERS[1: | ||
| + | x | ||
| + | x[1] | ||
| + | x[1:3] | ||
| + | x[c(1, | ||
| + | x[-2] | ||
| + | x[-c(2,4)] | ||
| + | |||
| + | ### INDEXAÇÃO COM LÓGICA ##### | ||
| + | ALTURA=c(1.85, | ||
| + | ALTURA | ||
| + | SEXO = factor(rep(c(" | ||
| + | SEXO | ||
| + | PESO <- c(80, 100, 115, 70, 65, 50) | ||
| + | PESO | ||
| + | |||
| + | ## OPERAÇÕES LÓGICAS | ||
| + | ALTURA >= 1.8 | ||
| + | SEXO==" | ||
| + | |||
| + | homens.altos <- (ALTURA > 1.8) & (SEXO==" | ||
| + | homens.altos | ||
| + | |||
| + | PESO[homens.altos] | ||
| + | |||
| + | |||
| + | ### ALTERANDO SUCONJUNTOS ###### | ||
| + | |||
| + | ALTURA | ||
| + | ALTURA > 1.8 | ||
| + | ALTURA[ALTURA > 1.80] | ||
| + | ALTURA[ALTURA > 1.80] <- c(1.86, 1.93, 1.82) | ||
| + | ALTURA | ||
| + | |||
| + | ### CRIANDO UM DATA FRAME ###### | ||
| + | |||
| + | pessoas <- data.frame(alt = ALTURA, sex = SEXO) | ||
| + | pessoas | ||
| + | pessoas$peso | ||
| + | pessoas$peso <- c(80, 100, 115, 70, 65, 50) | ||
| + | pessoas | ||
| + | pessoas$peso[2] | ||
| + | pessoas[2, 3] | ||
| + | pessoas[, " | ||
| + | pessoas[c(1, | ||
| + | |||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | ===== Lendo dados e salvando resultados ===== | ||
| + | |||
| + | ==== read.table ==== | ||
| + | A melhor forma de ler um arquivo de dados é tranformá-lo em arquivo texto onde os campos são separados por algum caractere, o mais comum é virgula e ponto-virgula ('' | ||
| + | |||
| + | Veja os principais opções de argumentos da função read.table: | ||
| + | |||
| + | ^ argumento ^ estado ^ significado ^ | ||
| + | |header| TRUE | primeira linha é nome das variáveis| | ||
| + | | sep | " | ||
| + | | sep | " " | separador | ||
| + | | sep | ";" | ||
| + | | dec | " | ||
| + | | dec | "," | ||
| + | |as.is | TRUE | não transforma variável em fator| | ||
| + | |||
| + | <WRAP center round box 60%> | ||
| + | **__Exercício__** | ||
| + | * Salve o arquivo [[dados: | ||
| + | * Abra-o no Excel; | ||
| + | * Salve como texto, separado por tabulação; | ||
| + | * Leia o arquivo com '' | ||
| + | * Verifique se a estrutura de '' | ||
| + | </ | ||
| + | |||
| + | ==== Salvando dados ==== | ||
| + | Para salvar um conjunto de dados há dois formatos básicos no R. Podemos salvar o arquivo como texto, usando a função '' | ||
| + | |||
| + | <WRAP center round box 60%> | ||
| + | **__Exercício__** | ||
| + | |||
| + | * Verifique os objetos presentes na sua área de trabalho usando a função '' | ||
| + | * Confirme que há o objeto chamado '' | ||
| + | * salve o objeto com a função '' | ||
| + | <code rsplus> | ||
| + | save(pessoas, | ||
| + | </ | ||
| + | * tente abrir o aquivo criado | ||
| + | * faça o mesmo usando o '' | ||
| + | * abra esse arquivo no Excel | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ==== save.image ==== | ||
| + | Para salvar todos os objetos de sua área de trabalho, use a função '' | ||
| + | |||
| + | * salve seu código do script no arquivo '' | ||
| + | * salve todos os objetos da sua área de trabalho no arquivo '' | ||
| + | * * remova todos os objetos da sua área de trabalho; | ||
| + | <code rsplus> | ||
| + | rm(list = ls()) | ||
| + | </ | ||
| + | * feche o R; | ||
| + | * abra o R pelo arquivo criado acima '' | ||
| + | * verifique que objetos existem na área de trabalho; | ||
| + | * feche novamente o R; | ||
| + | * abra o seu script '' | ||
| + | * rode todo o script acima na sessão do R; | ||
| + | * verifique os objetos da sua área de trabalho; | ||
| + | |||
| + | |||
| + | ---- | ||
| + | |||
| + | |||
| + | ===== Não se perca! ===== | ||
| + | |||
| + | {{: | ||
| + | |||
| + | |||
| + | <wrap em> | ||
| + | | ||
| + | \\ | ||
| + | | ||
| + | \\ | ||
| + | É preciso praticar! | ||
| + | |||
| + | </ | ||
| + | |||
| + | <WRAP center round tip 60%> | ||
| + | Cada um dos tópicos que vimos até aqui está explicado em mais detalhes no material do curso. Para cada um deles temos um tutorial, um capítulo da apostila online e um série de exercícios. Uma boa estratégia é estudar os tópicos utilizando a sequência: tutorial, apostila e exercício! | ||
| + | </ | ||
| + | |||
| + | Vamos revisar alguns conceitos visto até agora. Agora é com o professor! | ||
| + | ===== Manipulando dados ===== | ||
| + | ==== Funções para usar funções ==== | ||
| + | Uma maneira inteligente de usar o R é automatizar tarefas usando as funções que executam outras funções nos dados, dependendo da classe do objeto. A família de funções '' | ||
| + | Siga o script abaixo tentando entender cada passo, comente seu código, além dos comentários já incluídos para lembrar do que as funções fazem. Lembre-se **sempre olhe a documentação das funções no ** '' | ||
| + | |||
| + | <code rsplus> | ||
| + | ################# | ||
| + | ## familia apply | ||
| + | ################# | ||
| + | |||
| + | ls() | ||
| + | str(pessoas) | ||
| + | |||
| + | #altura media por sexo | ||
| + | tapply(X = pessoas$alt, | ||
| + | tapply(X = pessoas$alt, | ||
| + | ## quantos homens e mulheres? | ||
| + | table(pessoas$sex) | ||
| + | table(pessoas$sex, | ||
| + | ## qual a media de altura e peso (independente do sexo) | ||
| + | apply(pessoas[, | ||
| + | |||
| + | ## e essa ultima? | ||
| + | aggregate(x = pessoas[, | ||
| + | ## veja o help da funcao | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | ---- | ||
| + | ===== Gráficos ===== | ||
| + | O R é muito bom para fazer gráficos, aqui vamos apresentar algumas funcionalidade do pacote básico '' | ||
| + | Existem várias opções de pacotes para a elaboração de gráficos no R. Aqui vamos apresentar a lógica do pacote '' | ||
| + | Três elementos são importantes para entender a lógica do '' | ||
| + | |||
| + | |||
| + | ==== Funções de alto nível ==== | ||
| + | As funções de auto nível são responsáveis pela estruturação básica de um gráfico, abrem o dispositivo de apresentação (a janela gráfica) e constroem os elementos básicos do gráfico. As funções subordinadas incluem elementos em um gráfico ativo. Veja a diferença rodando o código abaixo: | ||
| + | |||
| + | <code rsplus> | ||
| + | ############################# | ||
| + | ## graficos | ||
| + | ## funcoes de alto nivel: abrem o dispositivo de tela | ||
| + | example(plot) | ||
| + | example(contour) | ||
| + | example(hclust) | ||
| + | ### demos | ||
| + | demo(image) | ||
| + | demo(persp) | ||
| + | ######################### | ||
| + | ## funcoes subordinadas | ||
| + | example(points) | ||
| + | example(segments) | ||
| + | example(rect) | ||
| + | example(axis) | ||
| + | example(colors) | ||
| + | #################### | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ==== Parâmetros do dispositivo gráficos ==== | ||
| + | Os parâmetros do dispositivo gráfico por sua vez muda a estrutura do dispositivo gráfico antes de abrí-lo. Deve ser usado antes rodar uma função gráfica de alto nível. Para interagir com os parâmetros gráficos utilizamos a função '' | ||
| + | Veja o help dessa função: | ||
| + | <code rsplus> | ||
| + | |||
| + | ?par | ||
| + | |||
| + | </ | ||
| + | ==== UM GRÁFICO ==== | ||
| + | Vamos usar o código de um gráfico ((autoria de Cristina Banks)) para entender como elaborar um gráfico no R. Primeiro, vamos mudar os parâmetros do gráfico antes de iniciar, mudamos cada parâmetro em um linha para que possa buscar no help informações para entender o que o parâmetro significa e completar os comentários em cada linha. | ||
| + | |||
| + | <code rsplus> | ||
| + | ########## dados #################### | ||
| + | riqueza <- c(15, | ||
| + | area <- c(2, | ||
| + | box <- c(10, | ||
| + | z <- c(50, | ||
| + | samples <- rep(1: | ||
| + | model <- lm(riqueza~area) | ||
| + | model1 <- glm(z~area, poisson) | ||
| + | ###################################### | ||
| + | # mudando parametros do grafico | ||
| + | par(mfrow=c(2, | ||
| + | par(mar=c(3, | ||
| + | par(cex.axis=1.3) # ... | ||
| + | par(cex.lab=1.5) # ... | ||
| + | par(family=" | ||
| + | par(las=1) # ... | ||
| + | par(tcl=0.3) # ... | ||
| + | par(mgp=c(2, | ||
| + | par(bty=" | ||
| + | </ | ||
| + | |||
| + | |||
| + | Siga fazendo o gráfico utilizando o código abaixo procurando entender cada função e argumento utilizado. | ||
| + | Comente as linhas. | ||
| + | |||
| + | <code rsplus> | ||
| + | plot(riqueza~area, | ||
| + | text(10,50, " | ||
| + | abline(model, | ||
| + | # | ||
| + | points(z~area, | ||
| + | axis(4) | ||
| + | xv< | ||
| + | yv< | ||
| + | lines(xv, | ||
| + | </ | ||
| + | |||
| + | === Interação com o gráfico === | ||
| + | Algumas ((poucas no pacote '' | ||
| + | Vamos utilizá-la para colocar uma legenda na janela ativa do gráfico. | ||
| + | |||
| + | <code rsplus> | ||
| + | |||
| + | xy <- locator(1) | ||
| + | |||
| + | ## clique em uma posicao no espaco entre os eixos x e y do painel ativo | ||
| + | |||
| + | legend(xy, legend=c(" | ||
| + | |||
| + | </ | ||
| + | |||
| + | Vamos continuar o gráfico, agora passando para o segundo painel da janela. Isso ocorre automaticamente quando utilizarmos uma função de auto nível. Antes disso, vamos mudar os parâmetros desse novo painel usando a função '' | ||
| + | <WRAP center round important 60%> | ||
| + | **__Comente o código__** | ||
| + | Para fixar e facilitar quando estiver procurando algum dos comandos utilizados nessa atividade para a construção do seu próprio gráfico, comente as linhas de código! | ||
| + | |||
| + | </ | ||
| + | |||
| + | <code rsplus> | ||
| + | par(mar=c(5, | ||
| + | par(bty=" | ||
| + | boxplot(box~samples, | ||
| + | mtext(c(" | ||
| + | mtext(" | ||
| + | mtext(" | ||
| + | text(0.7, | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ---- | ||
| + | ---- | ||
| + | |||
| + | ===== Modelos Lineares ===== | ||
| + | |||
| + | <code rsplus> | ||
| + | |||
| + | ############################ | ||
| + | ##### lm() ANOVA | ||
| + | ############################ | ||
| + | ## dados | ||
| + | ## producao agricula em diferentes tipos de solo | ||
| + | are=c(6, | ||
| + | arg=c(17, | ||
| + | hum=c(13, | ||
| + | planta=c(are, | ||
| + | #### criando um fator que representa os solos ### | ||
| + | fator.solo=as.factor(rep(c(" | ||
| + | ############################ | ||
| + | aov.solo< | ||
| + | summary(aov.solo) | ||
| + | ### mesmo modelo usando o lm() | ||
| + | lm.solo< | ||
| + | summary(lm.solo) | ||
| + | anova(lm.solo) ## funcao para calcular a tabela de anova do modelo | ||
| + | ################################## | ||
| + | ##### regressao linear | ||
| + | ################################## | ||
| + | library(MASS) # carrega o pacote MASS | ||
| + | data(Animals) # ativa os dado Animals do pacote MASS | ||
| + | str(Animals) # 28 observacoes de tamanho do corpo e peso do cerebro de diferentes animais | ||
| + | plot(brain~body, | ||
| + | ## parece nao haver relacao! | ||
| + | plot(brain~body, | ||
| + | ## agora sim! | ||
| + | plot(log(brain) ~ log(body), data = Animals) | ||
| + | ### criando um modelo de log(brain) ~ log(body) | ||
| + | anim.m1 <- lm(log(brain)~log(body), | ||
| + | ## colocando a linha do modelo no grafico dos dados | ||
| + | abline(anim.m1, | ||
| + | ## resultados do modelo | ||
| + | summary(anim.m1) | ||
| + | |||
| + | </ | ||
| + | |||