Diferenças

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

Link para esta página de comparações

Ambos lados da revisão anteriorRevisão anterior
Próxima revisão
Revisão anterior
mod1:mat_apoio:intro_r [2010/08/16 14:54] 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.
  
-===== Prazer, meu nome é Gui, Gui =====+===== 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?  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> <code>
-valor=+valor <- 
-pares=c(0,2,4,6,8) +pares <- c(0,2,4,6,8) 
-cores=c("azul","vermelho","amarelo")+cores <- c("azul","vermelho","amarelo")
 </code> </code>
  
-Quando usamos o símbolo "=" estamos criando objetos com um nome (o que vem antes do = ) e que contém alguns elementos (o que vem depois do ). 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:+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> <code>
 ls() ls()
Linha 53: Linha 55:
 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? 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?
 <code> <code>
-moeda=c("cara","coroa")+moeda <- c("cara","coroa")
 moeda moeda
 sample(moeda,1) sample(moeda,1)
Linha 63: Linha 65:
 A cada vez que você roda  //sample(dado,1)// o //R// faz um sorteio. Vamos jogar uns dados agora. A cada vez que você roda  //sample(dado,1)// o //R// faz um sorteio. Vamos jogar uns dados agora.
 <code> <code>
-dado=c(1:6)+dado <- c(1:6)
 dado dado
 sample(dado,1) sample(dado,1)
Linha 72: Linha 74:
 Gostaram? Mas não vão ficar viciados, hein?! ;-) 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.+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> <code>
 1:100 1:100
-array(1:100,dim=c(20,5,1))+matrix(1:100,nrow=20,ncol=5)
 </code> </code>
-Note que //dim// define o número de linhas (20) e colunas (5).+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:+Mas podemos ir além e criar um objeto tridimensional do tipo array:
 <code> <code>
 array(1:100,dim=c(5,5,4)) array(1:100,dim=c(5,5,4))
 </code> </code>
-Note que o terceiro valor de //dim// corresponde à terceira dimensão. O resultado aparece como fatias de um bolo. Conseguiu visualizar?+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?
  
  
Linha 91: Linha 94:
 a a
  
-b=array(NA,dim=c(3,3,1))+b=matrix(NA,nrow=3,ncol=3)
 b b
  
Linha 104: Linha 107:
 a[1] a[1]
  
-b[3,3,1]="oi"+b[3,3]="oi"
 b b
-b[2,2,1]="oi"+b[2,2]="oi"
 b b
-b[1,1,1]="oi"+b[1,1]="oi"
 b b
-b[3,3,1]+b[3,3]
  
 c[3,3,1]="oi" c[3,3,1]="oi"
Linha 120: Linha 123:
 c[3,3,3] c[3,3,3]
 </code> </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, 1]**. 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]**.+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: Outro forte do //R// é a criação de gráficos. Veja alguns exemplos extremamente simples:
Linha 136: Linha 145:
 boxplot(iris$Sepal.Length~iris$Species) boxplot(iris$Sepal.Length~iris$Species)
 </code> </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. 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.
Linha 158: Linha 170:
  
 <box 80%| Para você que quer mais!> <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+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> </box>
  
  
mod1/mat_apoio/intro_r.1281970486.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