Ferramentas do usuário

Ferramentas do site


03_apostila:01-intro

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
03_apostila:01-intro [2020/08/12 06:04]
127.0.0.1 edição externa
03_apostila:01-intro [2023/08/14 12:37] (atual)
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 14: Linha 14:
 O R não é um software do tipo __aplicativo__,​ a preocupação não é com amigabilidade,​ mas com flexibilidade e capacidade de manipulação de dados e realização de análises. O R não é um software do tipo __aplicativo__,​ a preocupação não é com amigabilidade,​ mas com flexibilidade e capacidade de manipulação de dados e realização de análises.
  
-Notar que na definição não se usou o termo //​Estatística//​. ​ Embora a maioria das pessoas usem o R como um software estatístico,​ seus definidores (//Venables et al.//, 2007) preferem ​definí-lo como um ambiente onde muitas técnicas estatísticas,​ clássicas e modernas, podem ser implementadas,​ entre outras coisas.+Notar que na definição não se usou o termo //​Estatística//​. ​ Embora a maioria das pessoas usem o R como um software estatístico,​ seus definidores (//Venables et al.//, 2007) preferem ​defini-lo como um ambiente onde muitas técnicas estatísticas,​ clássicas e modernas, podem ser implementadas,​ entre outras coisas.
 Algumas dessas técnicas estão implementadas no ambiente básico do R (**R base**), mas muitas estão implementadas em pacotes adicionais (**packages**). Algumas dessas técnicas estão implementadas no ambiente básico do R (**R base**), mas muitas estão implementadas em pacotes adicionais (**packages**).
  
Linha 29: Linha 29:
   * No final da década de 90, foi implementada uma revisão na linguagem S que a tornou uma linguagem de alto padrão totalmente baseada em programação por objetos. ​ Essa é versão atual da linguagem S, sendo apresentada em detalhes por //​Chambers//​ (1998).   * No final da década de 90, foi implementada uma revisão na linguagem S que a tornou uma linguagem de alto padrão totalmente baseada em programação por objetos. ​ Essa é versão atual da linguagem S, sendo apresentada em detalhes por //​Chambers//​ (1998).
  
-  * linguagem R é formalmente apresentada em uma publicação de Ihaka, R. & Gentleman, R. em 1996 ((note a incial ​do primeiro nome de ambos autores)). Nela apresentam o R como uma implementação da linguagem Scheme ((Um dialéto da linguagem LISP muito conhecida por ter sido criada e utilizada por décadas em um curso no MIT que originou o ótimo livro de Abelson & Sussman (1996), chamado "​Structure and Interpretation of Computer Programs"​)) ​adapatada ​à sintaxe do S.  A sua estrutura de código aberto (que vem da linguagem S) e de software público e gratuito atraiu um grande número de desenvolvedores,​ sendo que há hoje inúmeros pacotes para o R.+  * linguagem R é formalmente apresentada em uma publicação de Ihaka, R. & Gentleman, R. em 1996 ((note a inicial ​do primeiro nome de ambos autores)). Nela apresentam o R como uma implementação da linguagem Scheme ((Um dialéto da linguagem LISP muito conhecida por ter sido criada e utilizada por décadas em um curso no MIT que originou o ótimo livro de Abelson & Sussman (1996), chamado "​Structure and Interpretation of Computer Programs"​)) ​adaptada ​à sintaxe do S.  A sua estrutura de código aberto (que vem da linguagem S) e de software público e gratuito atraiu um grande número de desenvolvedores,​ sendo que há hoje inúmeros pacotes para o R.
  
 <WRAP center round box 70%> <WRAP center round box 70%>
-//**__PARA SABER UM POUCO MAIS__**//+//**__Para saber um pouco mais__**//
  
 Execute estes comandos no R: Execute estes comandos no R:
Linha 44: Linha 44:
  
 ===== Página Oficial do R ===== ===== Página Oficial do R =====
-Esta é a referência básica para usuários de R, que inclui programas para download, listas de discussão, ​muita documentação e ajuda: [[http://​www.r-project.org/​]].+Esta é a referência básica para usuários de R, que inclui programas para download, listas de discussão, muita documentação e ajuda: [[http://​www.r-project.org/​]].
  
 Explore as seções, começando pelas FAQ. Boa parte do que tratamos aqui está na seção 2 (**R Basics**) das FAQ, além de várias outras informações úteis. Explore as seções, começando pelas FAQ. Boa parte do que tratamos aqui está na seção 2 (**R Basics**) das FAQ, além de várias outras informações úteis.
Linha 53: Linha 53:
  
  
-===== Instalação do R =====+==== Instalação do R ====
 Os arquivos necessários para instalar o ambiente R estão disponíveis gratuitamente no sítio oficial [[http://​www.r-project.org/​]]. Os arquivos necessários para instalar o ambiente R estão disponíveis gratuitamente no sítio oficial [[http://​www.r-project.org/​]].
  
Linha 59: Linha 59:
  
  
-===== Iniciando o R =====+==== Iniciando o R ====
  
  
 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)
-> plot(area,​riqueza,​xlab="​Área (ha)", ylab="​Riqueza"​)+> plot(area, riqueza, xlab = "Área (ha)", ylab = "​Riqueza"​)
 </​code>​ </​code>​
   *  No primeiro caso, o valor de cada argumento usado está explicitado. O argumento ''​x''​ da função ''​plot''​ é a variável independente,​ e o argumento ''​y''​ é a variável dependente. ​   *  No primeiro caso, o valor de cada argumento usado está explicitado. O argumento ''​x''​ da função ''​plot''​ é a variável independente,​ e o argumento ''​y''​ é a variável dependente. ​
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 possível ​encontrar a função "​logaritmo"​
 > log(2)) > log(2))
 Erro: unexpected '​)'​ in "​log(2))"​ Erro: unexpected '​)'​ in "​log(2))"​
Linha 210: Linha 210:
 </​code>​ </​code>​
  
-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 219: Linha 219:
  
  
-===== Para Sair =====+ 
 + 
 +===== Para Sair do R =====
  
 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 245:
 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 252:
 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 261: Linha 263:
  
 Mas o **workspace permanece na memória do computador**. ​ Somente quando você dá o comando de sair (''​q()''​) é que o Mas o **workspace permanece na memória do computador**. ​ Somente quando você dá o comando de sair (''​q()''​) é que o
-R lhe pergunta se você deseja **gravar** o seu **workspace**. Se você responde ​'​y',​ o R grava um arquivo chamado ''​.RData''​((este é um arquivo oculto, pois seu nome inicia-se com um ponto)) em seu **diretório de trabalho**. Na próxima vez que o R for chamado desse diretório, o conteúdo do arquivo ''​.RData''​ será carregado para o "​workspace"​.+R lhe pergunta se você deseja **gravar** o seu **workspace**. Se você responder ​'​y',​ o R grava um arquivo chamado ''​.RData''​((este é um arquivo oculto, pois seu nome inicia-se com um ponto)) em seu **diretório de trabalho**. Na próxima vez que o R for chamado desse diretório, o conteúdo do arquivo ''​.RData''​ será carregado para o "​workspace"​.
  
 ==== Aprenda este Comando para Não Perder Seu Trabalho ==== ==== Aprenda este Comando para Não Perder Seu Trabalho ====
Linha 267: Linha 269:
 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 276:
 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"​)
 > >
 </​code>​ </​code>​
Linha 281: Linha 283:
 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"​)
 ># Carrega o arquivo default de workspace de outro diretório: ># Carrega o arquivo default de workspace de outro diretório:
-> load(file="/​home/​paulo/​work/​treinos_R/​.RData"​)+> load(file = "/​home/​paulo/​work/​treinos_R/​.RData"​)
 </​code>​ </​code>​
  
Linha 292: Linha 294:
 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"​)
 </​code>​ </​code>​
  
-Tome cuidado com a sintaxe do comando ''​save'':​ ele aceita o nome de vários objetos ​que existem no seu workspace e um nome de arquivo, que deve ser passado com ''​file=''​.+Tome cuidado com a sintaxe do comando ''​save'':​ ele aceita o nome de vários objetos ​do seu workspace e apenas ​um nome de arquivo, que deve ser passado com o argumento ​''​file=''​.
  
 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>​
 +
 +Outra maneira de salvar objetos é usar o comando ''​saveRDS''​. Contudo, esse comando salva apenas um objeto por vez:
 +<code rsplus>
 +> saveRDS (modelo1, file = "​meu_modelo.rds"​)
 +</​code>​
 +
 +Ambos comandos (''​save''​ e ''​saveRDS''​) tem como padrão a compressão dos objetos antes de salvá-los para economizar espaço em disco. Veja o argumento ''​compress''​ no ''​help''​ destas funções. ​
 ==== Aprenda este Procedimento para Organizar Seu Trabalho ==== ==== Aprenda este Procedimento para Organizar Seu Trabalho ====
  
Linha 308: Linha 317:
  
 Ao contrário do que você pode estar acostumado(a),​ não é uma boa idéia manter vários arquivos com diferentes versões dos dados ou análises em um mesmo diretório. Os usuários de R em geral mantém o padrão da linguagem, de um único arquivo //default// por análise, o ''​.RData'',​ criando quantos diretórios forem necessários para organizar o trabalho. ​ Ao contrário do que você pode estar acostumado(a),​ não é uma boa idéia manter vários arquivos com diferentes versões dos dados ou análises em um mesmo diretório. Os usuários de R em geral mantém o padrão da linguagem, de um único arquivo //default// por análise, o ''​.RData'',​ criando quantos diretórios forem necessários para organizar o trabalho. ​
 +
 +
 +
 +
  
 ===== Gerenciando a Área de Trabalho ===== ===== Gerenciando a Área de Trabalho =====
Linha 315: Linha 328:
 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 321: Linha 334:
  
 A função ''​ls''​ possui argumentos que podem refinar seus resultados, consulte a ajuda para os detalhes. A função ''​ls''​ possui argumentos que podem refinar seus resultados, consulte a ajuda para os detalhes.
- 
- 
- 
- 
- 
- 
- 
  
  
Linha 334: Linha 340:
 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 342: Linha 348:
 </​code>​ </​code>​
  
-Consulte a ajuda da função ''​rm''​ para seus argumentos.+Consulte a ajuda da função ''​rm''​ para seus argumentos. A função ''​rm''​ funciona da mesma forma e serve de atalhado para a função ''​remove''​
  
 ---- ----
Linha 358: Linha 364:
   - Mude o diretório de trabalho para o diretório que você criou.   - Mude o diretório de trabalho para o diretório que você criou.
   - Verifique o conteúdo da área de trabalho.   - Verifique o conteúdo da área de trabalho.
-  - Carregue o arquivo {{:​dados:​letras.rdata.pdf|letras.RData (apagar extensão .pdf)}}.+  - Carregue o arquivo {{ :​dados:​letras.Rdata |}}.
   - Verifique novamente sua área de trabalho.   - Verifique novamente sua área de trabalho.
   - Saia do R, tomando o cuidado de salvar sua área de trabalho.   - Saia do R, tomando o cuidado de salvar sua área de trabalho.
Linha 368: Linha 374:
 ===== Como Conseguir Ajuda no R ===== ===== Como Conseguir Ajuda no R =====
  
-No R é essencial aprender a procurar auxílio e manuais sozinho. ​ Após um aprendizado inicial, não há meio de evoluir no conhecimento +No R é essencial aprender a procurar auxílio e manuais sozinho. Após um aprendizado inicial, não há meio de evoluir no conhecimento 
-do ambiente R se não se buscar os **//​helps//​** que ele possui.+do ambiente R se não buscar os **//​helps//​** que ele possui.
  
  
Linha 376: Linha 382:
  
 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("​+"​)
 > ?"​*"​ > ?"​*"​
 </​code>​ </​code>​
  
-Ao utilizar esses comandos (help e ?) o R abre uma página hipertexto no seu navegador, contendo as informações de ajuda para o tema solicitado (função ou operador).+Ao utilizar esses comandos (''​help'' ​''​?''​) o R abre uma página hipertexto no seu navegador, contendo as informações de ajuda para o tema solicitado (função ou operador).
    
  
Linha 409: Linha 415:
  
 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 426: Linha 432:
   * Um cabeçalho com o nome da função, o pacote do R à qual pertence, e a classe do documento de ajuda   * Um cabeçalho com o nome da função, o pacote do R à qual pertence, e a classe do documento de ajuda
   * O nome completo da função   * O nome completo da função
 +  * A descrição do que a função faz ou para que ela pode ser usada
   * A sintaxe da função, que pode estar especificada para diferentes tipos de dados ou métodos   * A sintaxe da função, que pode estar especificada para diferentes tipos de dados ou métodos
   * A explicação de cada um dos argumentos da função   * A explicação de cada um dos argumentos da função
Linha 438: Linha 445:
    
    
-<​code>​ +<​code ​rsplus
-mean                  ​package:​base                  R Documentation+mean {base}                                                     R Documentation
  
 Arithmetic Mean Arithmetic Mean
Linha 456: Linha 463:
 Arguments: Arguments:
  
-       x: An R object. ​ Currently there are methods for numeric ​data +    ​x: An R object. Currently there are methods for numeric/logical vectors and  
-          ​framesnumeric vectors ​and dates.  ​A complex vector is+          ​datedate-time ​and time interval.  ​'​Complex'​ vectors are
           allowed for 'trim = 0', only.           allowed for 'trim = 0', only.
  
     trim: the fraction (0 to 0.5) of observations to be trimmed from     trim: the fraction (0 to 0.5) of observations to be trimmed from
-          each end of '​x'​ before the mean is computed.+          each end of '​x'​ before the mean 'is' ​computed.
  
    ​na.rm:​ a logical value indicating whether '​NA'​ values should be    ​na.rm:​ a logical value indicating whether '​NA'​ values should be
Linha 470: Linha 477:
 Value: Value:
  
-     For a data frame, a named vector ​with the appropriate method being +     If '​trim'​ '​is'​ zero (the default)the arithmetic mean of the values 
-     applied column by column.+     in '​x'​ '​is'​ computed, '​as' ​numeric or complex ​vector ​of length one. 
 +     If any argument '​is'​ not logical (coerced to numeric), numeric (including integer) 
 +     or complex, '​NA_real_'​ '​is'​ returned, with a warning.
  
-     If '​trim' ​is zero (the default), the arithmetic mean of the values +     If '​trim'​ '​is'​ non-zero, a symmetrically trimmed mean 'is' ​computed
-     in 'x' is computed, as a numeric or complex vector of length one. +
-     If any argument is not logical (coerced to numeric), integer, +
-     ​numeric or complex, ​'NA' is returned, with a warning. +
- +
-     If '​trim'​ is non-zero, a symmetrically trimmed mean is computed+
      with a fraction of '​trim'​ observations deleted from each end      with a fraction of '​trim'​ observations deleted from each end
-     ​before the mean is computed.+     ​before the mean 'is' ​computed.
  
 References: References:
  
-     ​Becker,​ R. A., Chambers, J. M. and Wilks, A. R. (1988) ​_The New S +     ​Becker,​ R. A., Chambers, J. M. and Wilks, A. R. (1988) ​The New S 
-     Language_. Wadsworth & Brooks/​Cole.+     Language. Wadsworth & Brooks/​Cole.
  
 See Also: See Also:
  
-     '​weighted.mean',​ '​mean.POSIXct'​+     '​weighted.mean',​ '​mean.POSIXct'​, '​colMeans'​ for row and column means.
  
 Examples: Examples:
Linha 497: Linha 501:
      c(xm, mean(x, trim = 0.10))      c(xm, mean(x, trim = 0.10))
  
-     ​mean(USArrests,​ trim = 0.2) + </​code>​
-</​code>​+
  
  
Linha 511: Linha 514:
  
 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 ... +If nothing happensyou should open 
-If '​sensible-browser'​ is already runningit is *not* restarted, and +‘http://​127.0.0.1:​18224/​doc/​html/​index.html’ yourself
-    you must switch to its window. +
-Otherwise, be patient ​...+
  
 </​code>​ </​code>​
Linha 522: Linha 523:
 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 536:
  
 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" ​          
  [4] "​monthplot" ​          "​plot.density" ​       "​plot.ecdf" ​         ​  [4] "​monthplot" ​          "​plot.density" ​       "​plot.ecdf" ​         ​
Linha 551: Linha 552:
 [37] "​sunflowerplot" ​      "​boxplot.stats" ​      "​.__C__recordedplot" ​ [37] "​sunflowerplot" ​      "​boxplot.stats" ​      "​.__C__recordedplot" ​
 </​code>​ </​code>​
 +
 +O string resultante do comando acima depende da versão do R instalada em seu computador.
  
 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"​)
  
-Help files with title matching '​skew'​ using regular expression +Help pages:
-matching: +
- +
- +
- +
-skewnormal1(VGAM) ​      ​Univariate Skew-Normal Distribution Family +
-                        Function +
-snorm(VGAM) ​            ​Skew-Normal Distribution +
-k3.linear(boot) ​        ​Linear Skewness Estimate +
  
 +VGAM::​skewnorm Skew-Normal Distribution
 +VGAM::​skewnormal Univariate Skew-Normal Distribution Family Function
  
-Type '​help(FOO,​ package = PKG)' to inspect entry '​FOO(PKG) TITLE'​. 
 </​code>​ </​code>​
  
Linha 576: Linha 571:
 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 586: Linha 581:
 [1] 8.75 5.50 [1] 8.75 5.50
  
-mean> mean(USArrests,​ trim = 0.2) 
-  Murder ​ Assault UrbanPop ​    ​notGood 
-    7.42   ​167.60 ​   66.20    20.16 
 </​code>​ </​code>​
  
 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 601: Linha 593:
  
 Argumentos com valores atribuídos são os valores //default// da função. Por exemplo, por //default// a função de teste de Qui-quadrado estima a significância pela distribuição de Qui-quadrado e não por randomização (argumento ''​simulate.p.value=FALSE''​). Argumentos com valores atribuídos são os valores //default// da função. Por exemplo, por //default// a função de teste de Qui-quadrado estima a significância pela distribuição de Qui-quadrado e não por randomização (argumento ''​simulate.p.value=FALSE''​).
- 
- 
  
  
Linha 617: Linha 607:
 <box left 80% | //​**Exercício 2.2.** ​ Use a Ajuda para Conhecer Argumentos das Funções// > <box left 80% | //​**Exercício 2.2.** ​ Use a Ajuda para Conhecer Argumentos das Funções// >
   - Execute o R, usando o diretório de trabalho criado no exercício anterior.   - Execute o R, usando o diretório de trabalho criado no exercício anterior.
-  - Use a função ''​load''​ para carregar o arquivo {{:​dados:​bichos.rdata.pdf|bichos.RData (apagar extensão .pdf)}} no //​workspace//​. +  - Use a função ''​load''​ para carregar o arquivo {{ :​dados:​bichos.Rdata |}} no //​workspace//​. 
-  - Consulte a ajuda da funções ''​rm''​ e ''​ls''​ para descobrir como apagar apenas os objetos cujos nomes começam com "​temp"​. ​                                                                                     ​+  - Consulte a ajuda das funções ''​rm''​ e ''​ls''​ para descobrir como apagar apenas os objetos cujos nomes começam com "​temp"​. ​                                                                                     ​
 </​box>​ </​box>​
  
  
-===== Pacotes ===== 
  
-Pacotes são conjuntos de funcionalidades (funções e dados) distribuídos em conjunto para realizar tarefas específicas. Por exemplo, o pacote **vegan** carrega na sua área de trabalho (deixa disponível para uso) um conjunto de ferramentas para análises de dados de ecologia de comunidades. Para usar os pacotes disponíveis no R  
-((" Currently, the CRAN package repository features 14270 available packages."​ --- //​[[aleadalardo@gmail.com|Alexandre Adalardo de Oliveira]] 2019/05/22 14:14// 
  
  
-"​Currently,​ the CRAN package repository features 5217 available packages." ​ --- //​[[aleadalardo@gmail.com|Alexandre Adalardo de Oliveira]] 2014/02/17 14:​31//​)) ​ 
  
-é necessário entender as diferenças entre **baixar** (download) o pacote do repositório e **carregar** em sua área de trabalho. +===== Pacotes ===== 
-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>​+Pacotes são conjuntos de funcionalidades (funções e dados) distribuídos em conjunto para realizar tarefas específicas. Por exemplo, o pacote **vegan** carrega na sua área de trabalho (deixa disponível para uso) um conjunto de ferramentas para análises de dados de ecologia de comunidades. Para usar os pacotes disponíveis no R  
 +((" Currently, the CRAN package repository features 14270 available packages."​ --- //​[[aleadalardo@gmail.com|Alexandre Adalardo de Oliveira]] 2019/05/22 14:​14//​)) ​é 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 parênteses(( 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 ​rsplus>
 install.packages("​vegan"​) install.packages("​vegan"​)
 </​code>​ </​code>​
Linha 640: Linha 629:
  
 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 636:
  
 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 655: Linha 644:
  
  
-Podemos imaginar a nossa sessão do R como uma bancada de trabalho em uma oficina, cercada por vários armários que contém as ferramentas que precisamos para realizar uma tarefa. Dependendo da tarefa que vamos realizar (arrumar uma moto, construir uma cadeira...) abrimos os armários que contem as ferramentas necessárias à tarefa desejada ​e apenas esses (função //​library()//​)Caso não tenhamos as ferramentas necessárias para uma tarefa específica (consertar um relógio), precisamos ir na loja de ferramentas (repositório) e comprar ​ conjunto de ferramentas de relojoeiro (função ​// install.packates("​watch"​)// que vem em um armário ​que colocamos ​ao lado dos outros em nossa oficina.+Podemos imaginar a nossa sessão do R como uma bancada de trabalho em uma oficina, cercada por vários armários que contém as ferramentas que precisamos para realizar uma tarefa. Dependendo da tarefa que vamos realizar (arrumar uma moto, construir uma cadeira...) abrimos os armários que contem as ferramentas necessárias à tarefa desejada. ​Por exemplo, caso não tenhamos as ferramentas necessárias para uma tarefa específica (p.ex. consertar um relógio), precisamos ir na loja de ferramentas (repositório) e comprar ​ conjunto de ferramentas de relojoeiro (função ​''​install.packages''​) que ficará ​em um 'armário' ​ao lado dos outros em nossa oficina ​e que devemos abrir esse armário a cada vez que iremos usar (função ''​library''​).
        
 +Existe uma outra função para carregar pacotes no R chamada ''​require''​. A diferença entre elas é sutil, mas dê preferência ao uso da função ''​library''​ para saber logo se o pacote que você pretende carregar já está instalado ou não.
 +
 +
 +
  
  
Linha 673: Linha 666:
 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 672:
 </​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 689: Linha 682:
 O comando sem os parênteses é na verdade o **nome do comando**. ​ Sendo o R um software de código aberto, toda vez que se digita o O comando sem os parênteses é na verdade o **nome do comando**. ​ Sendo o R um software de código aberto, toda vez que se digita o
 nome de um comando, ele **não executa** o comando mas **mostra o conteúdo** do comando (o código). nome de um comando, ele **não executa** o comando mas **mostra o conteúdo** do comando (o código).
-===== Primeiros Passos ​ ===== 
  
-Siga para o tópico [[cursos:​ecor:​03_apostila:​02-entrada]] da apostila e faça as atividades ali descritas.+ 
 + 
 + 
  
 ===== Atividade Extra ===== ===== Atividade Extra =====
Linha 698: Linha 693:
 Para se acostumar com a linguagem, siga as instruções deste [[http://​cran.r-project.org/​doc/​manuals/​R-intro.html#​A-sample-session|tutorial]],​ que está na ([[http://​www.r-project.org|página oficial do R]]):  Para se acostumar com a linguagem, siga as instruções deste [[http://​cran.r-project.org/​doc/​manuals/​R-intro.html#​A-sample-session|tutorial]],​ que está na ([[http://​www.r-project.org|página oficial do R]]): 
 </​box>​ </​box>​
 +
 +
 +
 +
 +
  
 ===== Referências ===== ===== Referências =====
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.
03_apostila/01-intro.1597223092.txt.gz · Última modificação: 2020/08/12 06:04 por 127.0.0.1