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 | ||
03_apostila:04-dados [2023/08/15 18:18] 127.0.0.1 edição externa |
03_apostila:04-dados [2023/08/15 18:33] (atual) |
||
---|---|---|---|
Linha 19: | Linha 19: | ||
> meu.vetor <- c(10.5,11.3,12.4,5.7) | > meu.vetor <- c(10.5,11.3,12.4,5.7) | ||
> meu.vetor | > meu.vetor | ||
- | [1] 10.5 11.3 12.4 5.7 | + | [1] 10.5 11.3 12.4 5.7 |
> | > | ||
> vetor.vazio <- c() | > vetor.vazio <- c() | ||
Linha 884: | Linha 884: | ||
- Crie um objeto da classe matriz com esses valores. Isso permite realizar as operações matriciais a seguir. | - Crie um objeto da classe matriz com esses valores. Isso permite realizar as operações matriciais a seguir. | ||
- Para calcular o número de indivíduos em cada estágio após um intervalo de tempo, basta multiplicar a matriz de transição pelas abundâncias dos indivíduos em cada estágio. Começando com 50 indivíduos do estágio 1, 25 do estágio 2 e 10 no estágio 3, qual será o número de plantas em cada estágio após três intervalos? | - Para calcular o número de indivíduos em cada estágio após um intervalo de tempo, basta multiplicar a matriz de transição pelas abundâncias dos indivíduos em cada estágio. Começando com 50 indivíduos do estágio 1, 25 do estágio 2 e 10 no estágio 3, qual será o número de plantas em cada estágio após três intervalos? | ||
- | - **Opcional**: A taxa de crescimento geométrico da população é o primeiro autovalor da matriz de transição, que pode ser calculado com a função ''eigen''((consulte a ajuda para interpretar o resultados dessa função)). Se a taxa é maior que um a população está crescendo. É o caso dessa população? | + | - **Opcional**: A taxa de crescimento geométrico da população é o primeiro autovalor da matriz de transição, que pode ser calculado com a função ''eigen''((consulte a ajuda para interpretar o resultados dessa função)). Se a taxa é maior que um a população está crescendo. É o caso dessa população? |
</box> | </box> | ||
Linha 891: | Linha 891: | ||
===== O R como Ambiente de Operações Vetoriais ===== | ===== O R como Ambiente de Operações Vetoriais ===== | ||
- | Na verdade, o R é muito mais que uma simples calculadora. O R é um **ambiente** onde podemos realizar operações vetoriais e matriciais. | + | Na verdade, o R é muito mais que uma simples calculadora. O R é um **ambiente** onde podemos realizar operações vetoriais e matriciais. |
Além das regras básicas para operações com vetores numéricos (ver [[03-funcoes#Vetores: Operações Matemáticas]]), há operações aplicáveis a outros tipos de dados, e as importantíssimas **operações lógicas**, aplicáveis a qualquer classe. | Além das regras básicas para operações com vetores numéricos (ver [[03-funcoes#Vetores: Operações Matemáticas]]), há operações aplicáveis a outros tipos de dados, e as importantíssimas **operações lógicas**, aplicáveis a qualquer classe. | ||
Linha 955: | Linha 955: | ||
==== Operações Lógicas ==== | ==== Operações Lógicas ==== | ||
- | Algumas operações são válidas para qualquer tipo de vetor. Essas operações envolvem comparações e são chamadas de operações lógicas: | + | Algumas operações são válidas para qualquer tipo de vetor. Essas operações envolvem comparações e são chamadas de operações lógicas: |
<code rsplus> | <code rsplus> | ||
> "Tabebuia cassinoides" == sp | > "Tabebuia cassinoides" == sp | ||
Linha 1068: | Linha 1068: | ||
=== Uma maneira simples de quantificar frequências === | === Uma maneira simples de quantificar frequências === | ||
- | Os vetores lógicos (''logical'') podem participar de operações matemáticas. Nesse caso o valor ''TRUE'' assume o valor 1, e valor ''FALSE'' assume o valor 0: | + | Os vetores lógicos (''logical'') podem participar de operações matemáticas. Nesse caso o valor ''TRUE'' assume o valor 1, e valor ''FALSE'' assume o valor 0: |
<code rsplus> | <code rsplus> | ||
> f | > f | ||
Linha 1148: | Linha 1148: | ||
===== Subconjuntos e Indexação ===== | ===== Subconjuntos e Indexação ===== | ||
- | Frequentemente teremos que trabalhar não com um vetor inteiro, mas com um //subconjunto// dele. Para obter subconjuntos de um vetor temos que realizar operações de **indexação**, isto é, associar ao vetor um outro vetor de mesmo tamanho com os **índices** dos elementos selecionados. | + | Frequentemente teremos que trabalhar não com um vetor inteiro, mas com um //subconjunto// dele. Para obter subconjuntos de um vetor temos que realizar operações de **indexação**, isto é, associar ao vetor um outro vetor de mesmo tamanho com os **índices** dos elementos selecionados. |
- | O **operador** de indexação é o colchetes '''[]''', e um vetor pode ser indexado de três formas principais: | + | O **operador** de indexação é o colchetes ''[]'', e um vetor pode ser indexado de três formas principais: |
- | A) **Vetor de números inteiros positivos**: os números se referem às posições desejadas do vetor indexado. | + | A) **Vetor de números inteiros positivos**: os números se referem às posições desejadas do vetor indexado. |
<code rsplus> | <code rsplus> | ||
> a | > a | ||
Linha 1182: | Linha 1182: | ||
- | C) **Vetor lógico**: os elementos do vetor lógico correspondentes a '''TRUE''' são selecionados, os elementos correspondentes a '''FALSE''' são excluídos. | + | C) **Vetor lógico**: os elementos do vetor lógico correspondentes a ''TRUE'' são selecionados, os elementos correspondentes a ''FALSE'' são excluídos. |
<code rsplus> | <code rsplus> | ||
> b | > b | ||
Linha 1199: | Linha 1199: | ||
</code> | </code> | ||
- | Na indexação por vetores lógicos, esses vetores devem ter **o mesmo comprimento** do vetor indexado. Caso contrário a operação será defeituosa: | + | Na indexação por vetores lógicos, esses vetores devem ter **o mesmo comprimento** do vetor indexado. Caso contrário a operação será defeituosa: |
<code rsplus> | <code rsplus> | ||
> b | > b | ||
Linha 1211: | Linha 1211: | ||
As operações por vetores lógicos podem combinar vários critérios, por meio dos operadores "E", "OU" e "NÃO": | As operações por vetores lógicos podem combinar vários critérios, por meio dos operadores "E", "OU" e "NÃO": | ||
- | <code rsplus> | + | |
<WRAP center round box 60%> | <WRAP center round box 60%> | ||
- | Por questão de segurança do wiki contra spam algumas palavras são proibidas. Nos exemplos a seguir a palavra "estupro" em inglês foi substituida por "Abuso", por esse motivo para rodar as linhas de código deve retornar a palavra para o idioma inglesa. | + | Por questão de segurança do wiki contra spam algumas palavras são proibidas. Nos exemplos a seguir a palavra "estupro" em inglês foi substituída por "Abuso", por esse motivo para rodar as linhas de código deve retornar a palavra para o idioma inglesa. |
</WRAP> | </WRAP> | ||
+ | <code rsplus> | ||
## Primeiras 5 linhas do data frame USArrests (crimes/1000 habitantes em cada estado dos EUA, em 1973): | ## Primeiras 5 linhas do data frame USArrests (crimes/1000 habitantes em cada estado dos EUA, em 1973): | ||
> USArrests[1:5,] | > USArrests[1:5,] | ||
Linha 1235: | Linha 1236: | ||
</code> | </code> | ||
- | D) **Vetor caracter**: nesse caso o vetor deve ser //nomeado// (função '''names''') por um vetor '''character''': | + | D) **Vetor caracter**: nesse caso o vetor deve ser //nomeado// (função ''names'') por um vetor ''character'': |
<code rsplus> | <code rsplus> | ||
> zoo = c(4, 10, 2, 45) | > zoo = c(4, 10, 2, 45) | ||
> names(zoo) = c("onça", "anta", "tatu", "guará") | > names(zoo) = c("onça", "anta", "tatu", "guará") | ||
- | > zoo[ c("anta","guará") ] | + | > zoo[ c("anta", "guará") ] |
anta guará | anta guará | ||
10 45 | 10 45 |