Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Próxima revisão
Revisão anterior
mod1:mat_apoio:intro_r [2010/08/16 14:53] – criada adalardomod1: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!//  ^_^
 </box> </box>
  
-Primeiro vamos abrir o tal programa e nos familiarizar um pouco com ele. Mas tente não perder muito tempo com essa primeira parte: se estiver demorando muito pule para a próxima seção.+Primeiro vamos abrir o tal programa e nos familiarizar um pouco com ele. Mas tente não perder muito tempo com essa primeira parte: ela é importante para entender o exercício, mas não é o exercício propriamente dito. Não permaneça nessa seção depois das 20:00h, no caso da turma do noturno
  
 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.  Veja o exemplo de linhas de comando abaixo e teste-as no //R//.
  
-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. 
 <code> <code>
 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, uma coisa que o //R// gosta bastante de fazer é criar objetos. Para tanto basta escolher um nome e atribuir-lhe algum valor ou conjunto de valores ou mesmo palavras. Se você quiser que seu objeto tenha mais de um elemento basta escrever **c(elemento 1,elemento 2,etc)**. Vamos tentar?  
 +<code> 
 +valor <- 5 
 +pares <- c(0,2,4,6,8) 
 +cores <- c("azul","vermelho","amarelo"
 +</code> 
 + 
 +Quando usamos o símbolo "=" ou  "<" seguido de "-" estamos criando objetos com um nome que aparece a esquerda e que contém alguns elementos (o que vem a direita do símbolo). Quando criamos um objeto, ele fica guardado na memória do //R// até que você feche o programa. Porém, os objetos criados ficam ocultos. Para ver a lista de arquivos ocultos basta dar o seguinte comando: 
 +<code> 
 +ls() 
 +</code> 
 + 
 +Já para ver o conteúdo de cada objeto basta chamá-lo pelo nome: 
 +<code> 
 +valor 
 +pares 
 +cores 
 +</code> 
 + 
 +Muito bemEspero 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? 
 +<code> 
 +moeda <- c("cara","coroa"
 +moeda 
 +sample(moeda,1) 
 +sample(moeda,1) 
 +sample(moeda,1) 
 +sample(moeda,1) 
 +</code> 
 + 
 +A cada vez que você roda  //sample(dado,1)// o //R// faz um sorteioVamos jogar uns dados agora. 
 +<code> 
 +dado <- c(1:6) 
 +dado 
 +sample(dado,1) 
 +sample(dado,1) 
 +sample(dado,1) 
 +</code> 
 + 
 +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 //matrix()//
 + 
 +<code> 
 +1:100 
 +matrix(1:100,nrow=20,ncol=5) 
 +</code> 
 +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: 
 +<code> 
 +array(1:100,dim=c(5,5,4)) 
 +</code> 
 +Note que o argumento agora é //dim// deve conter os valores de cada dimensão c('linha', 'colunas', 'matriz'). O resultado aparece como fatias de um bolo, onde cada camada é uma matriz. Conseguiu visualizar? 
 + 
 + 
 +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.) 
 +<code> 
 +a=rep(NA,10) 
 +
 + 
 +b=matrix(NA,nrow=3,ncol=3) 
 +
 + 
 +c=array(NA,dim=c(3,3,3)) 
 +
 +</code> 
 + 
 +Mas qual a graça de se fazer isso? A graça é que depois podemos preencher os lugares vazios com os valores que quisermos. 
 +<code> 
 +a[1]=2 
 +
 +a[1] 
 + 
 +b[3,3]="oi" 
 +
 +b[2,2]="oi" 
 +
 +b[1,1]="oi" 
 +
 +b[3,3] 
 + 
 +c[3,3,1]="oi" 
 +
 +c[3,3,2]="ai" 
 +
 +c[3,3,3]="ui" 
 +
 +c[3,3,3] 
 +</code> 
 +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 
 +</box> 
 + 
 +===== Gráficos ===== 
 + 
 +Outro forte do //R// é a criação de gráficos. Veja alguns exemplos extremamente simples: 
 +<code> 
 +plot(1:10,10:1) 
 +plot(1:10,10:1,pch=2) 
 +plot(1:10,10:1,pch=2,col=2) 
 +plot(1:10,10:1,pch=2,xlab="eixo x") 
 +plot(1:10,10:1,pch=2,xlab="eixo x",ylab="eixo y") 
 + 
 + 
 +hist(rnorm(1000),col=33) 
 +arrows(2,100,2,70,col=2) 
 + 
 +boxplot(iris$Sepal.Length~iris$Species) 
 +</code> 
 + 
 + 
 +===== Funções no R ===== 
 + 
 +Agora, o golpe de misericórdia: como criar uma função. Criar uma função nada mais é do que programar o computador para fazer uma tarefa em seu lugar. Soou interessante? Pois é, mas isso exige um pouco mais do nosso esforço. Vamos ver um exemplo bem simples. Vou ensinar o programa a calcular a média de um conjunto de valores. 
 +<code> 
 +media=function(objeto){sum(objeto)/length(objeto)} 
 +media(c(1,2,3)) 
 + 
 +alturas=c(1.4,1.7,2.0,1.6,1.8) 
 +media(alturas)                   
 + 
 +</code> 
 +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//. 
 +<code> 
 +sum(alturas)    # soma dos elementos do objeto "alturas" 
 +length(alturas) # número de elementos do objeto "alturas" 
 +mean(alturas)   # média dos elementos do objeto "alturas" 
 +</code> 
 + 
 +O "#" em cada linha de comando significa que o //R// deve desconsiderar o texto. Isso é bom: quer dizer que o programa não se mete na conversa dos outros.  
 + 
 +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://ecologia.ib.usp.br/bie5782/doku.php|disciplina do R}}, oferecida para os alunos de pós graduação ou de trocar uma idéia com os professores, que são feras no assunto. O começo, como toda linguagem, é uma subida árdua. Mas com o tempo a coisa chega a ser até prazerosa. 8-o //Marcel// 
 +</box> 
  
mod1/mat_apoio/intro_r.1281970425.txt.gz · Última modificação: 2024/01/11 15:21 (edição externa)
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0