ECOLOGIA VEGETAL 2012
Módulo I
Tópicos
Material de Apoio
*/
Aqui você vê as diferenças entre duas revisões dessa página.
Próxima revisão | Revisão anterior | ||
mod1:mat_apoio:intro_r [2010/08/16 14:53] – criada adalardo | mod1:mat_apoio:intro_r [2024/01/11 15:21] (atual) – edição externa 127.0.0.1 | ||
---|---|---|---|
Linha 6: | Linha 6: | ||
<box 100% red|Antes de entrar em pânico...> | <box 100% red|Antes de entrar em pânico...> | ||
Nesta prática iremos utilizar um programa que interage com você por meio de linhas de comando, o que significa que ele tem uma linguagem própria que vocês não devem conhecer. À primeira vista vai parecer assustador, mas vocês verão que não é tão ruim assim. Este roteiro atuará como seu guia e tradutor. | Nesta prática iremos utilizar um programa que interage com você por meio de linhas de comando, o que significa que ele tem uma linguagem própria que vocês não devem conhecer. À primeira vista vai parecer assustador, mas vocês verão que não é tão ruim assim. Este roteiro atuará como seu guia e tradutor. | ||
- | Para interagir com o programa utilizaremos o GUI (graphic user interface), que apesar de básico, nesse caso ajuda muito. | ||
Sigam-no e ninguém sairá ferido. //Bon voyage!// | Sigam-no e ninguém sairá ferido. //Bon voyage!// | ||
</ | </ | ||
- | Primeiro vamos abrir o tal programa e nos familiarizar um pouco com ele. Mas tente não perder muito tempo com essa primeira parte: | + | Primeiro vamos abrir o tal programa e nos familiarizar um pouco com ele. Mas tente não perder muito tempo com essa primeira parte: |
Procure no desktop do seu computador um //R// azul e estiloso como o da figura acima. Se não acharem no desktop tentem | Procure no desktop do seu computador um //R// azul e estiloso como o da figura acima. Se não acharem no desktop tentem | ||
- | em Iniciar -> Todos os programas. Abram o programa e vocês verão uma tela árida e sem vida (Lembrem-se de que a Terra era assim também há alguns bilhões de anos atrás e veja no que ela se tornou). Note que há algumas poucas opções de comandos no menu superior. | + | em Iniciar -> Todos os programas. Abram o programa e vocês verão uma tela árida e sem vida (Lembrem-se de que a Terra era assim também há alguns bilhões de anos atrás e veja no que ela se tornou). Note que há algumas poucas opções de comandos no menu superior. Esse é o GUI (Graphic User Interface) que apesar de básico irá ajudá-lo em algumas tarefas mais simples. |
+ | |||
+ | Sem desanimar, vamos utilizar o //R// para fazer a coisa mais simples que ele sabe: operações aritméticas. Note que os comandos que devem ser inseridos no programa estarão sempre no formato de texto //code//, com um fundo azulado. | ||
+ | |||
+ | Durante esse roteiro terá duas opções: (1) copiar os códigos que aparecem no roteiro em um fundo azul claro e colar no console do R ou (2) digitar diretamente no console do //R// os comando que estão no roteiro. Não esqueça de que devem dar um //ENTER// depois de escrever cada linha de comando. | ||
- | Sem desanimar, vamos utilizar o //R// para fazer a coisa mais simples que ele sabe: operações aritméticas. Note que os comandos que devem ser inseridos no programa estarão sempre no formato de texto //code//, como abaixo. Não esqueça de que devem dar um //ENTER// depois de escrever cada linha de comando. | ||
< | < | ||
2+2 | 2+2 | ||
Linha 30: | Linha 32: | ||
Note que o contador mostra a posição do primeiro valor de cada linha de resultado. | Note que o contador mostra a posição do primeiro valor de cada linha de resultado. | ||
- | [[primeira parte:|Continua... (opcional)]] | + | ===== Um pouco mais de R ===== |
+ | |||
+ | Continuando, | ||
+ | < | ||
+ | valor <- 5 | ||
+ | pares <- c(0, | ||
+ | cores <- c(" | ||
+ | </ | ||
+ | |||
+ | Quando usamos o símbolo " | ||
+ | < | ||
+ | ls() | ||
+ | </ | ||
+ | |||
+ | Já para ver o conteúdo de cada objeto basta chamá-lo pelo nome: | ||
+ | < | ||
+ | valor | ||
+ | pares | ||
+ | cores | ||
+ | </ | ||
+ | |||
+ | Muito bem. Espero que até aqui ninguém tenha morrido **ainda**. Agora vamos fazer um dos truques mais bacanas do //R//: que comece a jogatina! Você sabia que podemos jogar dados com esse programa? Quer apostar? | ||
+ | < | ||
+ | moeda <- c(" | ||
+ | moeda | ||
+ | sample(moeda, | ||
+ | sample(moeda, | ||
+ | sample(moeda, | ||
+ | sample(moeda, | ||
+ | </ | ||
+ | |||
+ | A cada vez que você roda // | ||
+ | < | ||
+ | dado <- c(1:6) | ||
+ | dado | ||
+ | sample(dado, | ||
+ | sample(dado, | ||
+ | sample(dado, | ||
+ | </ | ||
+ | |||
+ | Gostaram? Mas não vão ficar viciados, hein?! ;-) | ||
+ | |||
+ | Finalmente, vamos às brincadeiras de gente grande. Para a prática de hoje, vamos trabalhar com matrizes. Felizmente é muito fácil transformar um conjunto de dados em uma matriz utilizando o comando // | ||
+ | |||
+ | < | ||
+ | 1:100 | ||
+ | matrix(1: | ||
+ | </ | ||
+ | Note que os argumentos //nrow// define o número de linhas (20) e //ncol// o de colunas (5). | ||
+ | |||
+ | Mas podemos ir além e criar um objeto tridimensional do tipo array: | ||
+ | < | ||
+ | array(1: | ||
+ | </ | ||
+ | Note que o argumento agora é //dim// deve conter os valores de cada dimensão c(' | ||
+ | |||
+ | |||
+ | Outra coisa bacana é que podemos criar objetos vazios. (//NA// quer dizer não se aplica, ou seja, aquela posição não está sendo ocupada por nenhum valor.) | ||
+ | < | ||
+ | a=rep(NA, | ||
+ | a | ||
+ | |||
+ | b=matrix(NA, | ||
+ | b | ||
+ | |||
+ | c=array(NA, | ||
+ | c | ||
+ | </ | ||
+ | |||
+ | Mas qual a graça de se fazer isso? A graça é que depois podemos preencher os lugares vazios com os valores que quisermos. | ||
+ | < | ||
+ | a[1]=2 | ||
+ | a | ||
+ | a[1] | ||
+ | |||
+ | b[3, | ||
+ | b | ||
+ | b[2, | ||
+ | b | ||
+ | b[1, | ||
+ | b | ||
+ | b[3,3] | ||
+ | |||
+ | c[3, | ||
+ | c | ||
+ | c[3, | ||
+ | c | ||
+ | c[3, | ||
+ | c | ||
+ | c[3,3,3] | ||
+ | </ | ||
+ | Pronto, agora sem querer querendo vocês já sabem indexar! O que é isso? É simplesmente dizer a posição de um objeto que você quer. Se for um objeto simples do tipo linear, como é o caso de //a//, basta escrever o nome do objeto e em seguida um valor dentro dos colchetes (**nome[posição]**). Se for uma matriz como o //b//, você tem que dizer **nome[número da linha, número da coluna]**. Finalmente, se for um objeto tridimensional como o //c// você deve dizer **nome[número da linha, número da coluna, número da fatia do bolo]**. | ||
+ | |||
+ | <box 50% red | Que horas são? > | ||
+ | Confira as horas, caso já sejam 20h, não continue para não comprometer seu exercício de metapopulação | ||
+ | </ | ||
+ | |||
+ | ===== Gráficos ===== | ||
+ | |||
+ | Outro forte do //R// é a criação de gráficos. Veja alguns exemplos extremamente simples: | ||
+ | < | ||
+ | plot(1: | ||
+ | plot(1: | ||
+ | plot(1: | ||
+ | plot(1: | ||
+ | plot(1: | ||
+ | |||
+ | |||
+ | hist(rnorm(1000), | ||
+ | arrows(2, | ||
+ | |||
+ | boxplot(iris$Sepal.Length~iris$Species) | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Funções no R ===== | ||
+ | |||
+ | Agora, o golpe de misericórdia: | ||
+ | < | ||
+ | media=function(objeto){sum(objeto)/ | ||
+ | media(c(1, | ||
+ | |||
+ | alturas=c(1.4, | ||
+ | media(alturas) | ||
+ | |||
+ | </ | ||
+ | Note que entre parênteses estão os valores ou o objeto dos quais você quer a média. Entre chaves está o comando que calcula a média. Note também que para calcular a média usei duas funções pré-existentes no //R//: //sum// e //length//. Na verdade também já existe uma função pronta que calcula a média: //mean//. | ||
+ | < | ||
+ | sum(alturas) | ||
+ | length(alturas) # número de elementos do objeto " | ||
+ | mean(alturas) | ||
+ | </ | ||
+ | |||
+ | O "#" | ||
+ | |||
+ | Bom, isso é tudo, ou quase tudo, o que precisávamos saber sobre a lógica do //R// para fazermos a prática. Não se preocupem com detalhes sobre a linguagem. Contem com seu guia: o roteiro a seguir. E se ele falhar, por favor não hesitem em clamar pela ajuda dos professores e monitores. Boa sorte. =) | ||
+ | |||
+ | <box 80%| Para você que quer mais!> | ||
+ | Se você se interessou pelo programa não se sinta mal. Ele realmente é incrível, pois te permite fazer quase tudo que quiser. Não deixe de dar uma xeretada no site da {{http:// | ||
+ | </ | ||