Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior | ||
02_tutoriais:tutorial3:start [2022/05/31 17:53] adalardo [Listas] |
02_tutoriais:tutorial3:start [2023/08/23 12:24] (atual) |
||
---|---|---|---|
Linha 42: | Linha 42: | ||
</code> | </code> | ||
- | Agora vamos extrair apena o quinto elemento e em seguida substituir esse elemento pela palavra "quinto_elemento". Em seguida vamos repetir as operações anteriores: | + | Agora vamos extrair apenas o quinto elemento e em seguida substituir esse elemento pela palavra "quinto_elemento". Em seguida vamos repetir as operações anteriores: |
<code rsplus| Quinto elemento> | <code rsplus| Quinto elemento> | ||
Linha 58: | Linha 58: | ||
</code> | </code> | ||
- | O que aconteceu aqui? Por que não conseguimos mais operar o vetor "num"? Vamos agora voltar o vetor para sua forma original e operar novamente: | + | O que aconteceu aqui? Por que não conseguimos mais operar o vetor ''num''? Vamos agora voltar o vetor para sua forma original e operar novamente: |
<code rsplus| Retorno do elemento> | <code rsplus| Retorno do elemento> | ||
Linha 76: | Linha 76: | ||
</code> | </code> | ||
- | Como já havíamos visto, uma das característica do vetor é que **só armazena um tipo de natureza de dados** e o R faz a coerção da classe do objeto dependendo da característica desses dados. Incluir algo que não é digito ou símbolo de decimal em um objeto da classe numérica faz com que a classe seja convertida automaticamente em ''character''. | + | Como já havíamos visto, uma das característica do vetor é que **só armazena um tipo de natureza de dados** e o R faz a coerção da classe do objeto dependendo da característica desses dados. Incluir algo que não é dígito ou símbolo de decimal em um objeto da classe numérica faz com que a classe seja convertida automaticamente em ''character''. |
<WRAP center round tip 60%> | <WRAP center round tip 60%> | ||
Linha 86: | Linha 86: | ||
===== Leitura de Dados ===== | ===== Leitura de Dados ===== | ||
- | A principal função para a leitura de dados no R é ''read.table''. Ela é bem flexível e se aplica para a leitura de dados tabulares como uma planilha eletrônica usual, tendo colunas como variáveis e as linhas como observações. Esta estrutura é análoga a um conjunto de vetores lado a lado, de mesmo comprimento, como veremos a seguir. Antes da leitura de dados é importante garantir que temos eles bem organizados em uma planilha. O artigo [[https://doi.org/10.1080/00031305.2017.1375989|Data Organization in Spreedsheets (Broman & Woo, 2018)]] faz uma ótima síntese de boas práticas para estruturar dados brutos em uma planilha, sua leitura é rápida e irá poupar muito tempo futuro e evitar muitos erros comuns que usuários de planilhas cometem. Os exemplos de [[https://datacarpentry.org/spreadsheet-ecology-lesson/02-common-mistakes/|erros comuns em planilhas de ecologia do datacarpentry]] são também muito bons, uma forma interessante de aprender é ser exposto ao que não devemos fazer. | + | A principal função para a leitura de dados no R é ''read.table''. Ela é bem flexível e se aplica para a leitura de dados tabulares como uma planilha eletrônica usual, tendo colunas como variáveis e as linhas como observações. Esta estrutura é análoga a um conjunto de vetores lado a lado, de mesmo comprimento, como veremos a seguir. Antes da leitura de dados é importante garantir que temos eles bem organizados em uma planilha. O artigo [[https://doi.org/10.1080/00031305.2017.1375989|Data Organization in Spreedsheets (Broman & Woo, 2018)]] faz uma ótima síntese de boas práticas para estruturar dados brutos em uma planilha, sua leitura é rápida e irá poupar muito tempo futuro e evitar muitos erros comuns que usuários de planilhas cometem. Os exemplos de [[https://datacarpentry.org/spreadsheet-ecology-lesson/02-common-mistakes.html|erros comuns em planilhas de ecologia do datacarpentry]] são também muito bons, uma forma interessante de aprender é ser exposto ao que não devemos fazer. |
- | Tendo a planilha eletrônica com os dados brutos bem estruturados, precisamos exportá-la como arquivo texto puro para fazer a leitura no R. Os arquivos de texto são uma forma eficiente de armazenar dados que tem uma estrutura simples de linhas e colunas. Além de poderem ser abertos em qualquer programa simples de texto e sistema operacional, são reconhecidos nas planilhas eletrônicas como estrutura de dados. Normalmente, utilisamos as extensões ''.txt'' ou ''.csv'' para designar arquivos texto com campos de dados separados por tabulação e vírgula, respectivamente((existem muitos outros tipos de formatos de armazenamento de dados que incorporam dados mais complexos e georreferenciados)). | + | Tendo a planilha eletrônica com os dados brutos bem estruturados, precisamos exportá-la como arquivo texto puro para fazer a leitura no R. Os arquivos de texto são uma forma eficiente de armazenar dados que tem uma estrutura simples de linhas e colunas. Além de poderem ser abertos em qualquer programa simples de texto e sistema operacional, são reconhecidos nas planilhas eletrônicas como estrutura de dados. Normalmente, utilizamos as extensões ''.txt'' ou ''.csv'' para designar arquivos texto com campos de dados separados por tabulação e vírgula, respectivamente((existem muitos outros tipos de formatos de armazenamento de dados que incorporam dados mais complexos e georreferenciados)). |
- | Ao exportar os dados deve ficar atento para algumas opções de exportação da planilha, as principais são os caracteres para designar a separação de campo e o símbolo de decimal. Evite, sempre que possível, caracteres especiais como acentos e aspas ('' ' '', ''`'', ''"''), se houver a opção de escolher a codificação de caracteres ("enconding") opte pelo [[https://pt.wikipedia.org/wiki/UTF-8|UTF-8]]. | + | Ao exportar os dados deve ficar atento para algumas opções de exportação da planilha, as principais são os caracteres para designar a separação de campo e o símbolo de decimal. Evite, sempre que possível, caracteres especiais como acentos e aspas ('' ' '', ''`'', ''"''), se houver a opção de escolher a codificação de caracteres ("enconding") opte pelo [[https://pt.wikipedia.org/wiki/UTF-8|UTF-8]]. |
Sabendo o formato que os dados foram salvos no arquivo texto, na maioria dos casos, precisamos apenas do seguintes argumentos para fazer a leitura dos dados no R ((''read.table'' é muito flexível, veja a documentação!)): | Sabendo o formato que os dados foram salvos no arquivo texto, na maioria dos casos, precisamos apenas do seguintes argumentos para fazer a leitura dos dados no R ((''read.table'' é muito flexível, veja a documentação!)): | ||
Linha 100: | Linha 100: | ||
| file | nome do arquivo ((incluíndo a extensão e o caminho, caso não esteja no diretório de trabalho)) |<code rsplus> "nome_arquivo.txt"</code>| <code rsplus>"/caminho_dir/nome_arquivo.txt"</code> | | | file | nome do arquivo ((incluíndo a extensão e o caminho, caso não esteja no diretório de trabalho)) |<code rsplus> "nome_arquivo.txt"</code>| <code rsplus>"/caminho_dir/nome_arquivo.txt"</code> | | ||
| header | nome das variáveis ((utiliza a primeira linha dos dados para o nome das colunas))| <code rsplus>FALSE </code>| <code rsplus>TRUE </code>| | | header | nome das variáveis ((utiliza a primeira linha dos dados para o nome das colunas))| <code rsplus>FALSE </code>| <code rsplus>TRUE </code>| | ||
- | | sep | separador ((qual o símbolo separa os dados em uma linha. Ex: "\t" é tabulação)) |<code rsplus>" " </code>| <code rsplus> "," ";" "\t"</code> | | + | | sep | separador ((qual o símbolo separa os dados de uma mesma linha em colunas. Ex: "\t" é tabulação)) |<code rsplus>" " </code>| <code rsplus> "," ";" "\t"</code> | |
| dec | símbolo de decimal | <code rsplus>"." </code>|<code rsplus> "," </code>| | | dec | símbolo de decimal | <code rsplus>"." </code>|<code rsplus> "," </code>| | ||
| as.is| mantenha caracteres ((O padrão até a versão 4.0 do R era transformar caracteres em fator na leitura. A partir dessa versão o padrão mudou e a versão mais recente da função não faz essa transformação automática. )) | <code rsplus> TRUE </code> | <code rsplus>FALSE </code>| | | as.is| mantenha caracteres ((O padrão até a versão 4.0 do R era transformar caracteres em fator na leitura. A partir dessa versão o padrão mudou e a versão mais recente da função não faz essa transformação automática. )) | <code rsplus> TRUE </code> | <code rsplus>FALSE </code>| | ||
Linha 123: | Linha 123: | ||
- | Entre na página [[:dados:dados-caixeta|levantamento de espécies em caixetais]], leia a descrição dos dados e das variáveis e salve o arquivo de dados no diretório de trabalho. | + | Entre na página [[:dados:dados-caixeta|levantamento de espécies em caixetais]], leia a descrição dos dados e das variáveis e salve o arquivo de dados no diretório de trabalho. |
- | **Obs.**: Se o arquivo abrir em uma aba do navegador, clique com o botão direito do mouse no link e selecione "salvar link" LOL. | + | **Obs.**: Se o arquivo abrir em uma aba do navegador, clique com o botão direito do mouse no link e selecione "salvar link". |
Vamos fazer a leitura do arquivo com o padrão de leitura da função ''read.table'' e verificar em seguida a classe e a formatação do arquivo: | Vamos fazer a leitura do arquivo com o padrão de leitura da função ''read.table'' e verificar em seguida a classe e a formatação do arquivo: | ||
Linha 142: | Linha 142: | ||
</code> | </code> | ||
- | Indicando que tentou ler o arquivo, mas algumas linhas tinham dimensão diferentes, ou seja, o formato não era tabular. Isso ocorre, normalmente devido ao tipo de separador de campo utilizado no arquivo que não é espaço, o padrão da função. No caso, o separador é '','' como relatado na documentação dos dados. Vamos usar o argumento ''sep'' para indicar o separador. Em seguida vamos verificar a classe do objeto. | + | Indicando que tentou ler o arquivo, mas algumas linhas tinham dimensões diferentes, ou seja, o formato não era tabular. Isso ocorre, normalmente, devido ao tipo de separador de campo utilizado no arquivo que não é espaço, o padrão da função. No caso, o separador é '','' como relatado na documentação dos dados. Vamos usar o argumento ''sep'' para indicar o separador. Em seguida vamos verificar a classe do objeto. |
Linha 170: | Linha 170: | ||
===== Data Frames ===== | ===== Data Frames ===== | ||
- | A classe do objeto é um ''data.frame''. Esse é segundo tipo de objetos para armazenar dados no R que apresentamos: o ''vetor'' tem apenas uma dimensão de dados, o ''data.frame'' tem duas. Os datas frames no R são conjuntos de vetores de mesmo tamanho, similares a uma planilha de dados. Todas as características que vimos do objeto ''vetor'', valem para as colunas do ''data.frame''. Uma outra forma de pensar o data frame é que são variáveis (colunas) de um conjunto de observações (linhas). Assim como deve ser uma planilha de dados bem estruturada. | + | A classe do objeto é um ''data.frame''. Esse é o segundo tipo de objeto para armazenar dados no R que apresentamos: o ''vetor'' tem apenas uma dimensão de dados, o ''data.frame'' tem duas. Os datas frames no R são conjuntos de vetores de mesmo tamanho, similares a uma planilha de dados. Todas as características que vimos do objeto ''vetor'', valem para as colunas do ''data.frame''. Uma outra forma de pensar o data frame é que são variáveis (colunas) de um conjunto de observações (linhas). Assim como deve ser uma planilha de dados bem estruturada. |
- | Vamos insistir em uma sugestão importante, que evita muitos transtornos para quem está iniciando no R é: depois de efetuar a leitura **sempre verificar a estrutura dos dados antes de iniciar as análises**, usando as funções indicadas acima. | + | Vamos insistir em uma sugestão importante, que evita muitos transtornos para quem está iniciando no R é: depois de efetuar a leitura **sempre verificar a estrutura dos dados antes de iniciar as análises**, usando as funções indicadas acima. |
Linha 182: | Linha 182: | ||
</code> | </code> | ||
- | Apesar de ter sido lido o objeto não parece o que deveria. A dimensão do objeto mostra que tem uma observação a mais, os nomes das variáveis não corresponde ao que está definido no metadado e as variáveis foram todas lidas com ''characters'' ou ''factor'' dependendo da versão do R. O ''head'' mostra exatamente o que aconteceu: a linha com os nomes das variáveis foi lida como sendo uma observação. Com isso, todas as variáveis foram classificadas como caracteres. Vamos agora usar o argumento ''header'' e fazer novamente a verificação: | + | Apesar do objeto ter sido lido, ele não parece o que deveria. A dimensão do objeto mostra que tem uma observação a mais, os nomes das variáveis não corresponde ao que está definido no metadado e as variáveis foram todas lidas com ''characters'' ou ''factor'' dependendo da versão do R. O ''head'' mostra exatamente o que aconteceu: a linha com os nomes das variáveis foi lida como sendo uma observação. Com isso, todas as variáveis foram classificadas como caracteres. Vamos agora usar o argumento ''header'' e fazer novamente a verificação: |
Linha 193: | Linha 193: | ||
</code> | </code> | ||
- | No código acima temos resultados que podem variar dependendo da versão do R. Isso não é muito comum, pois a equipe de desenvolvedores busca manter a compatibilidade do scripts entre versões. | + | No código acima temos resultados que podem variar dependendo da versão do R. Isso não é muito comum, pois a equipe de desenvolvedores busca manter a compatibilidade dos scripts entre versões. |
Linha 200: | Linha 200: | ||
**__stringsAsFactors__** | **__stringsAsFactors__** | ||
- | Por padrão, até a versão anterior a 4.0.0 de abril de 2020, o padrão das funções ''read.table'' e ''data.frame'' era classificar as variáveis com caracteres como sendo um fator. Isso era definido com os padrões dos argumentos ''stringsAsFactors = TRUE'' ou ''as.is = FALSE''. Desde da versão 4.0.0 o padrão é classificar as variáveis que contém caracteres como sendo ''character''. Essa conversão automática para fator é um legado da linguagem S((veja artigo sobre essa mudança em [[https://developer.r-project.org/Blog/public/2020/02/16/stringsasfactors/index.html| developer blog]])). | + | Por padrão, até a versão anterior a 4.0.0 de abril de 2020, o padrão das funções ''read.table'' e ''data.frame'' era classificar as variáveis com caracteres como sendo um fator. Isso era definido com os padrões dos argumentos ''stringsAsFactors = TRUE'' ou ''as.is = FALSE''. Desde da versão 4.0.0 o padrão é classificar as variáveis que contém caracteres como sendo ''character''. O que acontece é que a partir dessa versão o padrão para ''as.is = !stringAsFactor'' e a função ''read.table'' incorporou o argumento ''stringAsFactors = TRUE''. Ou seja, por padrão o ''stringAsFactor'' diz para a função transformar caracteres em fator, mas é sobreposto pelo argumento ''as.is'' que inverte o valor lógico com ''!''. Essa conversão automática para fator é um legado da linguagem S((veja artigo sobre essa mudança em [[https://developer.r-project.org/Blog/public/2020/02/16/stringsasfactors/index.html| developer blog]])). |
</WRAP> | </WRAP> | ||
Linha 208: | Linha 208: | ||
- | Vamos então transformar as variáveis ''local'' e ''especie'' para fator, assim independente da versão do R instalada, estaremos todos com a mesma estrutura de objeto. | + | Vamos então transformar as variáveis ''local'' e ''especie'' para fator, assim independente da versão do R instalada, estaremos todos com a mesma estrutura de objeto. |
Linha 264: | Linha 264: | ||
</code> | </code> | ||
- | Uma outra forma de indexar é pelas posições da linha e coluna. No caso do ''data.frame'' isso é feito pela indicação das duas posições separadas por vírgula entre colchetes ''[ , ]''. Sempre o valor antes da vírgula se refere a primeira dimensão do ''data.frame'' que são as linha (observações) e o valor depois refere-se a coluna (variável). | + | Uma outra forma de indexar é pelas posições da linha e coluna. No caso do ''data.frame'' isso é feito pela indicação das duas posições separadas por vírgula entre colchetes ''[ , ]''. Sempre o valor antes da vírgula se refere a primeira dimensão do ''data.frame'' que são as linhas (observações) e o valor depois refere-se a coluna (variável). |
Linha 361: | Linha 361: | ||
Nesse caso, a indexação da coluna pode ser feita pelo nome da variável ou pela posição e também pode ser combinada. | Nesse caso, a indexação da coluna pode ser feita pelo nome da variável ou pela posição e também pode ser combinada. | ||
- | E se quisermos o inverso, o nome e a idade dos que nasceram depois de 1940? Precisamos só inverter o vetor de ''TRUE'' e ''FALSE'' usando o operador ''!'': | + | E se quisermos o inverso, o nome e a idade dos que nasceram depois de 1940? Precisamos só inverter o vetor de ''TRUE'' e ''FALSE'' usando o operador ''!'': |
Linha 400: | Linha 400: | ||
==== Salvando Data Frame ==== | ==== Salvando Data Frame ==== | ||
- | Após manipular os dados no R podemos salvar uma nova versão em um arquivo texto. Para salvar a nossa nova versão dos dados de caixetais, que incorpora o ''dap'', usamos a função ''write.table''. Os parâmetros são parecidos com a função de leitura, só que precisamos indicar qual o objeto deve ser salvo e nome do arquivo que será gravado. Caso queira salvar em um local diferente do diretório de trabalho deve também fornecer o caminho das pastas do computador. Abaixo estamos salvando os dados no arquivo ''caixeta.txt'', com os campos separados por tabulação (''\t'') e indicando que não queremos salvar nomes de linhas((Por padrão a função ''write.table'' salvará o valor de indexação da linha como o nome da observação)) (''row.names= FALSE'') | + | Após manipular os dados no R podemos salvar uma nova versão em um arquivo texto. Para salvar a nossa nova versão dos dados de caixetais, que incorpora o ''dap'', usamos a função ''write.table''. Os parâmetros são parecidos com a função de leitura, só que precisamos indicar qual o objeto a ser salvo e nome do arquivo no qual ele será gravado. Caso queira salvar em um local diferente do diretório de trabalho deve também fornecer o caminho das pastas do computador. Abaixo estamos salvando os dados no arquivo ''caixeta.txt'', com os campos separados por tabulação (''\t'') e indicando que não queremos salvar nomes de linhas((Por padrão a função ''write.table'' salvará o valor de indexação da linha como o nome da observação)) (''row.names= FALSE'') |
<code rsplus| Salvando arquivos de dados> | <code rsplus| Salvando arquivos de dados> | ||
Linha 426: | Linha 426: | ||
</code> | </code> | ||
- | Agora podemos rodar novamente a linha de comando do ''write.table'' e gravar o nosso arquivo ''caixeta.txt'' no diretório ''dados'', subordinado ao diretório de trabalho que a sessão do R está associado. | + | Agora podemos rodar novamente a linha de comando do ''write.table'' e gravar o nosso arquivo ''caixeta.txt'' no diretório ''dados'', subordinado ao diretório de trabalho que a sessão do R está associado. |
Linha 432: | Linha 432: | ||
**__Formato de Arquivo de Dados__** | **__Formato de Arquivo de Dados__** | ||
- | Arquivos de dados no formato de texto são uma forma segura de salvar conjunto de dados pequenos ou medianos ( ~100 mil registros). Os formatos mais usados são os com campo separados por espaço (padrão do ''read.table''), separado por vírgula ou ponto e vírgula, normalmente com extensão ''.csv'', ou tabulação, normalmente com extensão ''.txt''. A extensão é apenas uma indicação de formato e como é possível salvar o arquivo com qualquer extensão, precisamos saber qual estrutura foi utilizada para salvar os dados. O excel em sistemas operacionais em português salva arquivos ''csv'' separados por '';'', com símbolo de decimal '','', o que causa bastante confusão. Nossa sugestão é que configure seu computador para decimal com ''.'' e estabeleça o seu padrão de separação de campo, deixando indicado em um arquivo acessório de metadados. Antes de ler um arquivo de dados de texto que desconheça a formatação, abra em um arquivo de edição de texto simples, como o bloco de notas, para verificar os símbolos de separação de campo e decimal. | + | Arquivos de dados no formato de texto são uma forma segura de salvar conjunto de dados pequenos ou medianos ( ~100 mil registros). Os formatos mais usados são os com campo separados por espaço (padrão do ''read.table''), separados por vírgula ou ponto e vírgula, normalmente com extensão ''.csv'', ou tabulação, normalmente com extensão ''.txt''. A extensão é apenas uma indicação de formato e como é possível salvar o arquivo com qualquer extensão, precisamos saber qual estrutura foi utilizada para salvar os dados. O excel em sistemas operacionais em português salva arquivos ''csv'' separados por '';'', com símbolo de decimal '','', o que causa bastante confusão. Nossa sugestão é que configure seu computador para decimal com ''.'' e estabeleça o seu padrão de separação de campo, deixando indicado em um arquivo acessório de metadados. Antes de ler um arquivo de dados de texto que desconheça a formatação, abra em um arquivo de edição de texto simples, como o bloco de notas, para verificar os símbolos de separação de campo e decimal. |
Linha 447: | Linha 447: | ||
===== Matrizes ===== | ===== Matrizes ===== | ||
- | Outro tipo de objeto no R com estrutura tabular é a ''matrix'', que está associado à álgebra linear. A principal diferença com ''data.frame'' é que ''matrix'' só aceita uma classe de dados, assim como ''vector''. A ''matrix'' é usada no sentido de matrizes da álgebra linear e operações matriciais. | + | Outro tipo de objeto no R com estrutura tabular é a ''matrix'', que está associado à álgebra linear. A principal diferença com ''data.frame'' é que ''matrix'' só aceita uma classe de dados, assim como ''vector''. A ''matrix'' é usada no sentido de matrizes da álgebra linear e operações matriciais. |
Vamos aprender o objeto ''matrix'' associada ao estudo de dinâmica populacional. | Vamos aprender o objeto ''matrix'' associada ao estudo de dinâmica populacional. | ||
Linha 568: | Linha 568: | ||
**__Modelos Matriciais de Dinâmica Populacional__** | **__Modelos Matriciais de Dinâmica Populacional__** | ||
- | Com um pouco mais álgebra linear você pode obter muito mais informações sobre características da população biológica, apenas a partir das informações intrínsecas da matriz de transição (autovalores e autovetores). Por exemplo, a taxa de crescimento (λ) da população é o primeiro autovalor da matriz de transição, enquanto que o valor reprodutivo e a distribuição da proporção dos estágios no equilíbrio estão relacionados aos autovetores. Esses valores podem ser obtidos com a função ''eigen''((consulte a ajuda para interpretar o resultados dessa função)). Para saber como calcular esses valores veja o [[http://ecologia.ib.usp.br/ecopop/doku.php?id=roteiros:matriz|roteiro da disciplina de ecologia de populações]] na qual esse tópico foi baseado. | + | Com um pouco mais de álgebra linear você pode obter muito mais informações sobre características da população biológica, apenas a partir das informações intrínsecas da matriz de transição (autovalores e autovetores). Por exemplo, a taxa de crescimento (λ) da população é o primeiro autovalor da matriz de transição, enquanto que o valor reprodutivo e a distribuição da proporção dos estágios no equilíbrio estão relacionados aos autovetores. Esses valores podem ser obtidos com a função ''eigen''((consulte a ajuda para interpretar o resultados dessa função)). Para saber como calcular esses valores veja o [[http://ecologia.ib.usp.br/ecopop/doku.php?id=roteiros:matriz|roteiro da disciplina de ecologia de populações]] na qual esse tópico foi baseado. |
Linha 583: | Linha 583: | ||
- | Um formato de dados clássico em ecologia de comunidades é o de espécies por localidade, como a ocorrência ou a contagem de indivíduos. Já usamos a função ''table'' para contagem de uma variável tipo ''fator''. Vamos construir essa nova estrutura de dados a partir do objeto ''caixeta'' e fazer a coerção para a classe matrix. | + | Um formato de dados clássico em ecologia de comunidades é o de espécies por localidade, como a ocorrência ou a contagem de indivíduos. Já usamos a função ''table'' para contagem de uma variável tipo ''fator''. Vamos construir essa nova estrutura de dados a partir do objeto ''caixeta'' e fazer a coerção para a classe matrix. |
Linha 634: | Linha 634: | ||
=== Combinando colunas ou linhas === | === Combinando colunas ou linhas === | ||
- | As funções ''rbind'' e ''cbind'' são utilizada para concatenar dados tabulares pelas linhas ou colunas. Entretanto, só funcionam se a estrutura é a mesma, ou seja as variáveis são as mesmas e na mesma posição para acrescentar novas observações, ou as observações estão nas mesmas linhas para acrescentar novas variáveis. | + | As funções ''rbind'' e ''cbind'' são utilizadas para concatenar dados tabulares pelas linhas ou colunas. Entretanto, só funcionam se a estrutura é a mesma, ou seja as variáveis são as mesmas e na mesma posição para acrescentar novas observações, ou as observações estão nas mesmas linhas para acrescentar novas variáveis. |
<code rsplus| Combinando matrizes> | <code rsplus| Combinando matrizes> | ||
Linha 653: | Linha 653: | ||
==== Outras formas de combinar ==== | ==== Outras formas de combinar ==== | ||
- | Quando colunas ou linhas não podem ser combinadas diretamente, porque as posição não são compatíveis, podemos usar as funções ''merge'' e ''match''. O ''merge'' combina dois objetos por uma coluna que é a referência comum, combinando as variáveis de ambos ''dataframe''. O ''match'' funciona também a partir de uma variável comum a ambos objetos e produz um índice de posição que ordena um dos objetos na mesma posição que o outro. O ''match'' é um pouco mais dificil de entender, mas é uma ferramenta poderosa para manipular dados tabulares. Abaixo apresentamos ambas funções manipulando dados muito simples para demonstrar como funcionam. | + | Quando colunas ou linhas não podem ser combinadas diretamente, porque as posições não são compatíveis, podemos usar as funções ''merge'' e ''match''. O ''merge'' combina dois objetos por uma coluna que é a referência comum, combinando as variáveis de ambos ''dataframe''. O ''match'' funciona também a partir de uma variável comum a ambos objetos e produz um índice de posição que ordena um dos objetos na mesma posição que o outro. O ''match'' é um pouco mais difícil de entender, mas é uma ferramenta poderosa para manipular dados tabulares. Abaixo apresentamos ambas funções manipulando dados muito simples para demonstrar como funcionam. |
<code rsplus| Merge> | <code rsplus| Merge> | ||
Linha 771: | Linha 771: | ||
<WRAP center round tip 60%> | <WRAP center round tip 60%> | ||
- | Lembre-se sempre de olhar o ''help''. Não cometa o 7º pecado da lista do início desse tutorial, acostume-se com a documentação e como a sua estrutura. Toda as funções nesse tutorial apresentam um hiperlink que leva à sua documentação. | + | Lembre-se sempre de olhar o ''help''. Não cometa o 7º pecado da lista do início desse tutorial, acostume-se com a documentação e como a sua estrutura. Todas as funções nesse tutorial apresentam um hiperlink que leva à sua documentação. |