Aqui você vê as diferenças entre duas revisões dessa página.
Próxima revisão | Revisão anterior Próxima revisão Ambos lados da revisão seguinte | ||
03_apostila:01-intro [2020/08/12 06:04] 127.0.0.1 edição externa |
03_apostila:01-intro [2020/08/20 16:10] adalardo |
||
---|---|---|---|
Linha 1: | Linha 1: | ||
<WRAP tabs> | <WRAP tabs> | ||
- | * [[cursos:ecor:03_apostila:01-intro| Apostila]] | + | * [[03_apostila:01-intro| Apostila]] |
- | * [[cursos:ecor:02_tutoriais:tutorial1:start|Tutorial]] | + | * [[02_tutoriais:tutorial1:start|Tutorial]] |
- | * [[cursos:ecor:01_curso_atual:exercicios1| Exercícios]] | + | * [[01_curso_atual:exercicios1| Exercícios]] |
</WRAP> | </WRAP> | ||
====== 1. Introdução ====== | ====== 1. Introdução ====== | ||
Linha 64: | Linha 64: | ||
Em ambiente UNIX (como o Linux, por exemplo), podemos iniciar o R a partir do interpretador de comandos (//shell//) digitando o comando ''R'': | Em ambiente UNIX (como o Linux, por exemplo), podemos iniciar o R a partir do interpretador de comandos (//shell//) digitando o comando ''R'': | ||
- | <code> | + | <code rsplus> |
parsival@jatai $ R | parsival@jatai $ R | ||
</code> | </code> | ||
Linha 72: | Linha 72: | ||
Independentemente de como inicia, o R apresenta uma tela com (aproximadamente) a seguinte forma: | Independentemente de como inicia, o R apresenta uma tela com (aproximadamente) a seguinte forma: | ||
- | <code> | + | <code rsplus> |
R version 2.7.0 (2008-04-22) | R version 2.7.0 (2008-04-22) | ||
Copyright (C) 2008 The R Foundation for Statistical Computing | Copyright (C) 2008 The R Foundation for Statistical Computing | ||
Linha 108: | Linha 108: | ||
O estado de espera ocorre quando o usuário envia um comando incompleto, o que é indicado por um sinal de "''+''": | O estado de espera ocorre quando o usuário envia um comando incompleto, o que é indicado por um sinal de "''+''": | ||
- | <code> | + | <code rsplus> |
> | > | ||
> log(2 | > log(2 | ||
Linha 127: | Linha 127: | ||
Como nos exemplos abaixo: | Como nos exemplos abaixo: | ||
- | <code> | + | <code rsplus> |
> plot(x=area,y=riqueza) | > plot(x=area,y=riqueza) | ||
> plot(area, riqueza) | > plot(area, riqueza) | ||
Linha 168: | Linha 168: | ||
Há, portanto, três maneiras de guardar os resultados de um comando em um objeto: | Há, portanto, três maneiras de guardar os resultados de um comando em um objeto: | ||
- | <code> | + | <code rsplus> |
> a <- sqrt(4) | > a <- sqrt(4) | ||
> b = sqrt(4) | > b = sqrt(4) | ||
Linha 175: | Linha 175: | ||
Para exibir o conteúdo de um objeto, basta digitar seu nome | Para exibir o conteúdo de um objeto, basta digitar seu nome | ||
- | <code> | + | <code rsplus> |
> a | > a | ||
[1] 2 | [1] 2 | ||
Linha 186: | Linha 186: | ||
Se a atribuição é para um objeto que não existe, esse objeto é criado. **Mas cuidado**: se já há um objeto com o mesmo nome na sua área de trabalho, seus valores serão substituídos: | Se a atribuição é para um objeto que não existe, esse objeto é criado. **Mas cuidado**: se já há um objeto com o mesmo nome na sua área de trabalho, seus valores serão substituídos: | ||
- | <code> | + | <code rsplus> |
> a <- sqrt(4) | > a <- sqrt(4) | ||
> a | > a | ||
Linha 199: | Linha 199: | ||
==== Mensagens de Erro e de Avisos ==== | ==== Mensagens de Erro e de Avisos ==== | ||
Como em qualquer linguagem, o R tem regras de sintaxe e grafia. Mas contrário das linguagens humanas, mesmo um pequeno erro torna a mensagem incompreensível para o R, que então retorna uma mensagem de erro: | Como em qualquer linguagem, o R tem regras de sintaxe e grafia. Mas contrário das linguagens humanas, mesmo um pequeno erro torna a mensagem incompreensível para o R, que então retorna uma mensagem de erro: | ||
- | <code> | + | <code rsplus> |
> logaritmo(2) | > logaritmo(2) | ||
Erro: não foi posssível encontrar a função "logaritmo" | Erro: não foi posssível encontrar a função "logaritmo" | ||
Linha 211: | Linha 211: | ||
Em outros casos, o comando pode ser executado, mas com um resultado que possivelmente você não desejava. O R cria mensagens de alerta para os casos mais comuns desses resultados que merecem atenção : | Em outros casos, o comando pode ser executado, mas com um resultado que possivelmente você não desejava. O R cria mensagens de alerta para os casos mais comuns desses resultados que merecem atenção : | ||
- | <code> | + | <code rsplus> |
> log(-2) | > log(-2) | ||
[1] NaN | [1] NaN | ||
Linha 223: | Linha 223: | ||
Para sair do R, a forma mais fácil é usar o comando ''q'' (do inglês //quit//). Nesse caso o R, lhe pergunda se você deseja //salvar// (gravar) | Para sair do R, a forma mais fácil é usar o comando ''q'' (do inglês //quit//). Nesse caso o R, lhe pergunda se você deseja //salvar// (gravar) | ||
sua sessão de trabalho. | sua sessão de trabalho. | ||
- | <code> | + | <code rsplus> |
> q() | > q() | ||
Save workspace image? [y/n/c]: | Save workspace image? [y/n/c]: | ||
Linha 243: | Linha 243: | ||
O diretório a partir do qual você iniciou o R é o **diretório de trabalho** dessa sessão. Para verificar seu diretório de trabalho, use o comando ''getwd''((acrônimo de "get working directory")): | O diretório a partir do qual você iniciou o R é o **diretório de trabalho** dessa sessão. Para verificar seu diretório de trabalho, use o comando ''getwd''((acrônimo de "get working directory")): | ||
- | <code> | + | <code rsplus> |
> getwd() | > getwd() | ||
[1] "/home/paulo/work/Pos_grad/Eco_USP/cursoR" | [1] "/home/paulo/work/Pos_grad/Eco_USP/cursoR" | ||
Linha 250: | Linha 250: | ||
Para alterar o diretório de trabalho há a função ''setwd'': | Para alterar o diretório de trabalho há a função ''setwd'': | ||
- | <code> | + | <code rsplus> |
> setwd("/home/paulo/work/treinos_R/") | > setwd("/home/paulo/work/treinos_R/") | ||
> getwd() | > getwd() | ||
Linha 267: | Linha 267: | ||
Se acontecer do computador ser desligado durante uma sessão do R, tudo que foi feito será perdido!!! | Se acontecer do computador ser desligado durante uma sessão do R, tudo que foi feito será perdido!!! | ||
Para evitar isso, é interessante gravar com frequência o **workspace** utilizando o comando '''save.image()''': | Para evitar isso, é interessante gravar com frequência o **workspace** utilizando o comando '''save.image()''': | ||
- | <code> | + | <code rsplus> |
> save.image() | > save.image() | ||
> | > | ||
Linha 274: | Linha 274: | ||
Por //default//, o R gravará o workspace no arquivo ''.RData'', e quando você reiniciar uma sessão, o R automaticamente **carrega** esse arquivo. | Por //default//, o R gravará o workspace no arquivo ''.RData'', e quando você reiniciar uma sessão, o R automaticamente **carrega** esse arquivo. | ||
Mas você pode salvar em outro arquivo utilizando o **argumento** ''file'' da função: | Mas você pode salvar em outro arquivo utilizando o **argumento** ''file'' da função: | ||
- | <code> | + | <code rsplus> |
> save.image(file="minha-sessao-introdutoria.RData") | > save.image(file="minha-sessao-introdutoria.RData") | ||
> | > | ||
Linha 281: | Linha 281: | ||
Como o R carrega automaticamente apenas o arquivo ''.RData'' que está no diretório de trabalho, caso deseje carregar outros arquivos você deverá usar a função ''load'': | Como o R carrega automaticamente apenas o arquivo ''.RData'' que está no diretório de trabalho, caso deseje carregar outros arquivos você deverá usar a função ''load'': | ||
- | <code> | + | <code rsplus> |
># Carrega um arquivo de workspace no mesmo diretório | ># Carrega um arquivo de workspace no mesmo diretório | ||
> load(file="minha-sessao-introdutoria.RData") | > load(file="minha-sessao-introdutoria.RData") | ||
Linha 292: | Linha 292: | ||
Se você quiser salvar apenas alguns objetos (digamos, os resultados das suas análises), você pode usar o comando ''save'': | Se você quiser salvar apenas alguns objetos (digamos, os resultados das suas análises), você pode usar o comando ''save'': | ||
- | <code> | + | <code rsplus> |
> save(modelo1, file="meu_modelo.RData") | > save(modelo1, file="meu_modelo.RData") | ||
> save(dados, modelo1, modelo2, file="meus_modelos.RData") | > save(dados, modelo1, modelo2, file="meus_modelos.RData") | ||
Linha 300: | Linha 300: | ||
O comando ''save'' aceita o resultado de outros comandos. Por exemplo, o código abaixo equivale ao comando save.image(): | O comando ''save'' aceita o resultado de outros comandos. Por exemplo, o código abaixo equivale ao comando save.image(): | ||
- | <code> | + | <code rsplus> |
> save (list=ls(), file="tudo.RData") | > save (list=ls(), file="tudo.RData") | ||
</code> | </code> | ||
Linha 315: | Linha 315: | ||
O comando ''ls'' lista todo o conteúdo da área de trabalho, se não é fornecido argumento: | O comando ''ls'' lista todo o conteúdo da área de trabalho, se não é fornecido argumento: | ||
- | <code> | + | <code rsplus> |
> ls() | > ls() | ||
[1] "consoantes" "CONSOANTES" "vogais" "VOGAIS" | [1] "consoantes" "CONSOANTES" "vogais" "VOGAIS" | ||
Linha 334: | Linha 334: | ||
O comando ''rm'' apaga objetos da área de trabalho: | O comando ''rm'' apaga objetos da área de trabalho: | ||
- | <code> | + | <code rsplus> |
> ls() | > ls() | ||
[1] "consoantes" "CONSOANTES" "vogais" "VOGAIS" | [1] "consoantes" "CONSOANTES" "vogais" "VOGAIS" | ||
Linha 376: | Linha 376: | ||
Para conseguir ajuda sobre um comando pode ser usada a função ''help'': | Para conseguir ajuda sobre um comando pode ser usada a função ''help'': | ||
- | <code> | + | <code rsplus> |
> help(mean) | > help(mean) | ||
</code> | </code> | ||
ou então o operador de ajuda que é o sinal de interrogação '?': | ou então o operador de ajuda que é o sinal de interrogação '?': | ||
- | <code> | + | <code rsplus> |
?mean | ?mean | ||
</code> | </code> | ||
No caso se buscar ajuda sobre um **operador** (símbolo para operações aritméticas e algébricas) devemos utilizar as aspas duplas: | No caso se buscar ajuda sobre um **operador** (símbolo para operações aritméticas e algébricas) devemos utilizar as aspas duplas: | ||
- | <code> | + | <code rsplus> |
> help("+") | > help("+") | ||
> ?"*" | > ?"*" | ||
Linha 409: | Linha 409: | ||
No modo **help interativo** também é possível se fazer uma busca por uma palavra (//string//) usando a tecla '/', na forma: | No modo **help interativo** também é possível se fazer uma busca por uma palavra (//string//) usando a tecla '/', na forma: | ||
- | <code> | + | <code rsplus> |
/string | /string | ||
</code> | </code> | ||
Linha 438: | Linha 438: | ||
- | <code> | + | <code rsplus> |
mean package:base R Documentation | mean package:base R Documentation | ||
Linha 511: | Linha 511: | ||
Para os que preferem trabalhar com ajuda em hipertexto (html), há o comando ''help.start()'': | Para os que preferem trabalhar com ajuda em hipertexto (html), há o comando ''help.start()'': | ||
- | <code> | + | <code rsplus> |
> help.start() | > help.start() | ||
Making links in per-session dir ... | Making links in per-session dir ... | ||
Linha 522: | Linha 522: | ||
Após esta mensagem, um portal de ajuda em hipertexto será aberto no navegador de internet padrão do sistema. A partir dessa página inicial é possível fazer pesquisas por palavras-chave, consultar funções por pacote ou por ordem alfabética, obter textos introdutórios sobre a linguagem, e muito mais. | Após esta mensagem, um portal de ajuda em hipertexto será aberto no navegador de internet padrão do sistema. A partir dessa página inicial é possível fazer pesquisas por palavras-chave, consultar funções por pacote ou por ordem alfabética, obter textos introdutórios sobre a linguagem, e muito mais. | ||
<WRAP center round box 560px> | <WRAP center round box 560px> | ||
- | {{:cursos:ecor:03_apostila:fetch.png?550|}} | + | {{:03_apostila:fetch.png?550|}} |
</WRAP> | </WRAP> | ||
Linha 535: | Linha 535: | ||
Outro comando muito útil é o ''apropos''. Ele possibilita sabermos quais funções do R tem no nome uma certa palavra (//string//): | Outro comando muito útil é o ''apropos''. Ele possibilita sabermos quais funções do R tem no nome uma certa palavra (//string//): | ||
- | <code> | + | <code rsplus> |
> apropos(plot) | > apropos(plot) | ||
[1] "biplot" "interaction.plot" "lag.plot" | [1] "biplot" "interaction.plot" "lag.plot" | ||
Linha 554: | Linha 554: | ||
Para pesquisas mais complexas e refinadas há ainda a função ''help.search()''. Por exemplo, para pesquisar funções que tenham a palavra "skew"no título: | Para pesquisas mais complexas e refinadas há ainda a função ''help.search()''. Por exemplo, para pesquisar funções que tenham a palavra "skew"no título: | ||
- | <code> | + | <code rsplus> |
> help.search(field="title","skew") | > help.search(field="title","skew") | ||
Linha 576: | Linha 576: | ||
Para obter apenas os exemplos que estão na ajuda de uma função, use a função ''example'': | Para obter apenas os exemplos que estão na ajuda de uma função, use a função ''example'': | ||
- | <code> | + | <code rsplus> |
> example(mean) | > example(mean) | ||
Linha 593: | Linha 593: | ||
Muitas vezes precisamos apenas nos lembrar dos argumentos de uma função. Para isso, use a função ''args'', que retorna os argumentos de uma função: | Muitas vezes precisamos apenas nos lembrar dos argumentos de uma função. Para isso, use a função ''args'', que retorna os argumentos de uma função: | ||
- | <code> | + | <code rsplus> |
> args(chisq.test) | > args(chisq.test) | ||
function (x, y = NULL, correct = TRUE, p = rep(1/length(x), length(x)), | function (x, y = NULL, correct = TRUE, p = rep(1/length(x), length(x)), | ||
Linha 632: | Linha 632: | ||
é necessário entender as diferenças entre **baixar** (download) o pacote do repositório e **carregar** em sua área de trabalho. | é necessário entender as diferenças entre **baixar** (download) o pacote do repositório e **carregar** em sua área de trabalho. | ||
Para baixar algum pacote disponível no repositório CRAN do R é necessário utilizar o comando //install.packages()// com o nome do pacote entre "" dentro do parenteses(( a princípio todas as palavras que escrevemos sem aspas no R ele busca como sendo objetos presentes em nossa área de trabalho ou pacotes carregados ou instalados)). | Para baixar algum pacote disponível no repositório CRAN do R é necessário utilizar o comando //install.packages()// com o nome do pacote entre "" dentro do parenteses(( a princípio todas as palavras que escrevemos sem aspas no R ele busca como sendo objetos presentes em nossa área de trabalho ou pacotes carregados ou instalados)). | ||
- | <code> | + | <code rsplus> |
install.packages("vegan") | install.packages("vegan") | ||
</code> | </code> | ||
Linha 640: | Linha 640: | ||
Caso o pacote esteja instalado ele aparecerá entre os hiperlinks da página de [[#Ajuda em Hipertexto: ''help.start''|ajuda hipertexto]] da função //help.start()//. Entre na página do pacote e navegue pelas opções e funções que forem de seu interesse. Escolha uma função (decorana) e em seguida tente apresentar o ajuda dela pelo R: | Caso o pacote esteja instalado ele aparecerá entre os hiperlinks da página de [[#Ajuda em Hipertexto: ''help.start''|ajuda hipertexto]] da função //help.start()//. Entre na página do pacote e navegue pelas opções e funções que forem de seu interesse. Escolha uma função (decorana) e em seguida tente apresentar o ajuda dela pelo R: | ||
- | <code> | + | <code rsplus> |
help.start() | help.start() | ||
help(decorana) | help(decorana) | ||
Linha 647: | Linha 647: | ||
A mensagem (ou algo similar): //"No documentation for ‘decorana’ in specified packages and libraries..."//, significa que a sua sessão do R não encontrou a documentação referente a função, apesar do pacote estar instalado em nosso computador. Isso aconteceu porque não carregamos a função em nossa área de trabalho, para cada projeto, precisamos carregar aqueles pacotes que vamos necessitar (normalmente nas primeiras linhas de comando do nosso código): | A mensagem (ou algo similar): //"No documentation for ‘decorana’ in specified packages and libraries..."//, significa que a sua sessão do R não encontrou a documentação referente a função, apesar do pacote estar instalado em nosso computador. Isso aconteceu porque não carregamos a função em nossa área de trabalho, para cada projeto, precisamos carregar aqueles pacotes que vamos necessitar (normalmente nas primeiras linhas de comando do nosso código): | ||
- | <code> | + | <code rsplus> |
library(vegan) | library(vegan) | ||
Linha 673: | Linha 673: | ||
Para que um comando seja **executado** pelo R é necessário ser acompanhado de parênteses '()'. | Para que um comando seja **executado** pelo R é necessário ser acompanhado de parênteses '()'. | ||
Compare esse comando | Compare esse comando | ||
- | <code> | + | <code rsplus> |
> q() | > q() | ||
Save workspace image? [y/n/c]: c | Save workspace image? [y/n/c]: c | ||
Linha 679: | Linha 679: | ||
</code> | </code> | ||
com o comando | com o comando | ||
- | <code> | + | <code rsplus> |
> q | > q | ||
function (save = "default", status = 0, runLast = TRUE) | function (save = "default", status = 0, runLast = TRUE) | ||
Linha 691: | Linha 691: | ||
===== Primeiros Passos ===== | ===== Primeiros Passos ===== | ||
- | Siga para o tópico [[cursos:ecor:03_apostila:02-entrada]] da apostila e faça as atividades ali descritas. | + | Siga para o tópico [[03_apostila:02-entrada]] da apostila e faça as atividades ali descritas. |
===== Atividade Extra ===== | ===== Atividade Extra ===== | ||
Linha 709: | Linha 709: | ||
[[http://lmq.esalq.usp.br/CRAN/doc/manuals/R-intro.pdf|Venables, W.N.; Smith, D.M.; R Development Core Team]] //An Introduction to R - Notes on R: a programming environment for data analysis and graphics//. Version 2.5.1 (2007-06-27). | [[http://lmq.esalq.usp.br/CRAN/doc/manuals/R-intro.pdf|Venables, W.N.; Smith, D.M.; R Development Core Team]] //An Introduction to R - Notes on R: a programming environment for data analysis and graphics//. Version 2.5.1 (2007-06-27). | ||
- | Matéria sobre o R no New York Times, Janeiro de 2009: [[http://www.nytimes.com/2009/01/07/technology/business-computing/07program.html?pagewanted=1&_r=3&emc=eta1#|matéria on-line]], {{:cursos:ecor:03_apostila:r_on_ny_time_jan_2009.pdf| versão pdf}} | + | Matéria sobre o R no New York Times, Janeiro de 2009: [[http://www.nytimes.com/2009/01/07/technology/business-computing/07program.html?pagewanted=1&_r=3&emc=eta1#|matéria on-line]], {{:03_apostila:r_on_ny_time_jan_2009.pdf| versão pdf}} |
//Publish your code - it is good enough//, por Nick Barnes: um ensaio que estimula pesquisadores a partilharem seus códigos de análise de dados, mesmo que pareçam imperfeitos. [[http://www.nature.com/news/2010/101013/full/467753a.html|artigo na Nature News]], 2010. | //Publish your code - it is good enough//, por Nick Barnes: um ensaio que estimula pesquisadores a partilharem seus códigos de análise de dados, mesmo que pareçam imperfeitos. [[http://www.nature.com/news/2010/101013/full/467753a.html|artigo na Nature News]], 2010. |