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 [2020/09/21 13:15] adalardo [Atributos de um Objeto de Dados] |
03_apostila:04-dados [2023/08/15 18:33] (atual) |
||
---|---|---|---|
Linha 14: | Linha 14: | ||
=== Função ''c()'' (concatenate ou combine) === | === Função ''c()'' (concatenate ou combine) === | ||
- | As funções de criação de vetores já foram detalhadas na [[03-funcoes#criando_vetores|seção anterior]]. Basta lembrar aqui que todas elas são usadas para entrar diretamente dados em vetores no R: | + | As funções de criação de vetores já foram detalhadas na seção [[03-funcoes#o_r_como_uma_calculadora_vetorial|Funções Matemáticas e Estatísticas]] desta apostila. Basta lembrar aqui que todas elas são usadas para entrar diretamente dados em vetores no R: |
<code rsplus> | <code rsplus> | ||
> 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 71: | Linha 71: | ||
[4,] "fogo" "terra" "água" "ar" | [4,] "fogo" "terra" "água" "ar" | ||
</code> | </code> | ||
+ | |||
=== Função ''data.frame()'' === | === Função ''data.frame()'' === | ||
Com a função ''data.frame'' reunimos vetores de mesmo comprimento em um só objeto: | Com a função ''data.frame'' reunimos vetores de mesmo comprimento em um só objeto: | ||
Linha 89: | Linha 90: | ||
</code> | </code> | ||
- | === Funçao ''edit()''=== | + | === Função ''edit()''=== |
Esta função abre uma interface simples de edição de dados em formato planilha, e é útil para pequenas modificações. Mas para salvar as modificações atribua o resultado da função ''edit'' a um objeto: | Esta função abre uma interface simples de edição de dados em formato planilha, e é útil para pequenas modificações. Mas para salvar as modificações atribua o resultado da função ''edit'' a um objeto: | ||
<code rsplus> | <code rsplus> | ||
Linha 104: | Linha 105: | ||
==== Dados que já Estão em Arquivos==== | ==== Dados que já Estão em Arquivos==== | ||
=== Leitura e Exportação de Arquivos-Texto: ''read.table()'' e ''write.table()'' === | === Leitura e Exportação de Arquivos-Texto: ''read.table()'' e ''write.table()'' === | ||
- | Para conjuntos de dados grandes, é mais prático gerar um arquivo de texto (ASCII) a partir e uma planilha ou banco de dados, e usar a função ''read.table'' para ler os dados para um objeto no R. | + | Para conjuntos de dados grandes, é mais prático gerar um arquivo de texto (ASCII) a partir de uma planilha ou banco de dados, e usar a função ''read.table'' para ler os dados para um objeto no R. |
Para criar um objeto com os dados do arquivo {{:dados:gbmam93.csv.pdf|gbmam93.csv (apagar extensão .pdf)}}, por exemplo, digitamos: | Para criar um objeto com os dados do arquivo {{:dados:gbmam93.csv.pdf|gbmam93.csv (apagar extensão .pdf)}}, por exemplo, digitamos: | ||
<code rsplus> | <code rsplus> | ||
- | > gbmam93 <- read.table(file="gbmam93.txt",header=T,row.names=1,sep=",") | + | > gbmam93 <- read.table(file="gbmam93.csv",header=T,row.names=1,sep=",") |
> gbmam93 | > gbmam93 | ||
a b c d e f g h i j k l m n o p q r s | a b c d e f g h i j k l m n o p q r s | ||
Linha 153: | Linha 154: | ||
<code rsplus> | <code rsplus> | ||
- | lynx package:datasets R Documentation | + | lynx {datasets} R Documentation |
Annual Canadian Lynx trappings 1821-1934 | Annual Canadian Lynx trappings 1821-1934 | ||
Linha 169: | Linha 170: | ||
Source: | Source: | ||
- | Brockwell, P. J. and Davis, R. A. (1991) _Time Series and | + | Brockwell, P. J. and Davis, R. A. (1991) Time Series and |
- | Forecasting Methods._ Second edition. Springer. Series G (page | + | Forecasting Methods. Second edition. Springer. Series G (page |
557). | 557). | ||
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. |
Campbell, M. J.and A. M. Walker (1977). A Survey of statistical | Campbell, M. J.and A. M. Walker (1977). A Survey of statistical | ||
work on the Mackenzie River series of annual Canadian lynx | work on the Mackenzie River series of annual Canadian lynx | ||
- | trappings for the years 1821-1934 and a new analysis. _Journal of | + | trappings for the years 1821-1934 and a 'new' analysis. Journal of |
- | the Royal Statistical Society series A_, *140*, 411-431. | + | the Royal Statistical Society series A, 140, 411-431. |
</code> | </code> | ||
Linha 212: | Linha 213: | ||
No segundo caso, o pacote //vegan//, que tem o conjunto de dados, não está carregado e por isso deve ser indicado no argumento ''package''. | No segundo caso, o pacote //vegan//, que tem o conjunto de dados, não está carregado e por isso deve ser indicado no argumento ''package''. | ||
- | === Importacao de Pacotes Estatísticos === | + | === Importação de Arquivos de Outros Pacotes Estatísticos === |
O pacote //foreign// contém funções para importar e exportar diretamente arquivos de pacotes estatísticos. | O pacote //foreign// contém funções para importar e exportar diretamente arquivos de pacotes estatísticos. | ||
Linha 249: | Linha 250: | ||
* Atenas a Estocolmo: 3927 | * Atenas a Estocolmo: 3927 | ||
* Madri a Paris: 1273 | * Madri a Paris: 1273 | ||
- | * Madri a Estocolomo: 3188 | + | * Madri a Estocolmo: 3188 |
* Paris a Estocolmo: 1827 | * Paris a Estocolmo: 1827 | ||
Linha 291: | Linha 292: | ||
Vetores, matrizes e listas são objetos com características diferentes, formalmente definidas no R como //atributos//. Em uma linguagem orientada a objetos, são esses atributos que definem o contexto para a execução de um comando e, portanto, seu resultado. Fazendo uma analogia com o mundo físico, uma mesma ação tem resultados diferentes de acordo com as características do objeto em que é aplicada. | Vetores, matrizes e listas são objetos com características diferentes, formalmente definidas no R como //atributos//. Em uma linguagem orientada a objetos, são esses atributos que definem o contexto para a execução de um comando e, portanto, seu resultado. Fazendo uma analogia com o mundo físico, uma mesma ação tem resultados diferentes de acordo com as características do objeto em que é aplicada. | ||
- | O que é importante reter aqui é que os resultados que obtemos de um comando no R (incluindo as mensagens de erro!) são em boa parte definidas pelo objeto de dados, e não pela função. Por isso, quando enfrentar algum problema, verifique com cuidado na documentação se e como o seu comando se aplica à classe de objeto de dados que você está usando.((em termos técnicos: verifique se e como a função usada define um método para o objeto de dados usado)) | + | O que é importante reter aqui é que os resultados que obtemos de um comando no R (incluindo as mensagens de erro!) são em boa parte definidas pelo objeto de dados, e não apenas pela função. Por isso, quando enfrentar algum problema, verifique com cuidado na documentação se o seu comando se aplica à classe de objeto de dados que você está usando e, se sim, como.((em termos técnicos: verifique se e como a função usada define um método para o objeto de dados usado)) |
==== Atributos de um Objeto de Dados ==== | ==== Atributos de um Objeto de Dados ==== | ||
Linha 389: | Linha 390: | ||
Em muitos casos, indicar que um vetor é um fator é importante para a análise, e várias funções no R exigem variáveis dessa classe, ou têm respostas específicas para ela ((em termos técnicos, dizemos que há métodos para cada classe de objeto, e que algumas funções têm métodos específicos para fatores, ou só têm para essa classe. Veja a seção sobre programação para detalhes)). | Em muitos casos, indicar que um vetor é um fator é importante para a análise, e várias funções no R exigem variáveis dessa classe, ou têm respostas específicas para ela ((em termos técnicos, dizemos que há métodos para cada classe de objeto, e que algumas funções têm métodos específicos para fatores, ou só têm para essa classe. Veja a seção sobre programação para detalhes)). | ||
- | Note que fatores têm um atributo que especifica seu níveis ou categorias (''levels'') , que seguem ordem alfanumérica crescente, por //default//. Como essa ordem é importante para muitas análises, pode-se alterá-la com o argumento ''levels'', por exemplo para colocar o controle antes dos tratamentos: | + | Note que fatores têm um atributo que especifica seus níveis ou categorias (''levels'') , que seguem ordem alfanumérica crescente, por //default//. Como essa ordem é importante para muitas análises, pode-se alterá-la com o argumento ''levels'', por exemplo para colocar o controle antes dos tratamentos: |
<code rsplus> | <code rsplus> | ||
> tratamentos <- factor(rep(c("Controle","Adubo A","Adubo B"),each=4)) | > tratamentos <- factor(rep(c("Controle","Adubo A","Adubo B"),each=4)) | ||
Linha 427: | Linha 428: | ||
<box center 50% red| **Duas Coisa que Você Precisa Saber sobre Fatores**> | <box center 50% red| **Duas Coisa que Você Precisa Saber sobre Fatores**> | ||
* Um fator pode ter níveis para os quais não há valores. Isso pode acontecer quando alguns valores são selecionados ou excluídos (ver item sobre [[04-dados#Subconjuntos e Indexação|indexação]], nessa seção). Isso é muito importante, pois afeta o resultado de muitas funções (Veja os exemplos da função ''tapply'', a seguir e também no item sobre [[04-dados#Indexação de Fatores|indexação de fatores]]). | * Um fator pode ter níveis para os quais não há valores. Isso pode acontecer quando alguns valores são selecionados ou excluídos (ver item sobre [[04-dados#Subconjuntos e Indexação|indexação]], nessa seção). Isso é muito importante, pois afeta o resultado de muitas funções (Veja os exemplos da função ''tapply'', a seguir e também no item sobre [[04-dados#Indexação de Fatores|indexação de fatores]]). | ||
- | * Ao importar um arquivo texto, a função ''read.table'' transforma por //default// em fatores todas as variáveis que tenham caracteres. Você pode indicar quais dessas variáveis não são fatores com o argumento ''as.is''. | + | * Em versões mais antigas do R, a função ''read.table'' transformava em fatores todas as variáveis que tivessem caracteres por //default//. Em versões mais recentes, esse não é mais o padrão. Mas você pode decidir como você quer lidar com os caracteres durante a leitura usando o argumento ''as.is''. |
</box> | </box> | ||
Linha 627: | Linha 628: | ||
A função ''aggregate'' gera subconjuntos de cada um dos vetores de um //data frame//, executa uma função para cada um desses subconjuntos, e retorna um novo //data frame// com os resultados. | A função ''aggregate'' gera subconjuntos de cada um dos vetores de um //data frame//, executa uma função para cada um desses subconjuntos, e retorna um novo //data frame// com os resultados. | ||
- | Como seu resultado é sempre um //data frame//, a função ''aggregate'' é mais adequada que ''tapply'' para fazer estatíticas de muitos casos por uma ou muitas combinações de critérios: | + | Como seu resultado é sempre um //data frame//, a função ''aggregate'' é mais adequada que ''tapply'' para fazer estatísticas de muitos casos por uma ou muitas combinações de critérios: |
<code rsplus> | <code rsplus> | ||
> carros.marcas | > carros.marcas | ||
Linha 665: | Linha 666: | ||
</code> | </code> | ||
- | Os argumentos básicos da função são o //data.frame// com os valores (''x''), o(s) fator(es) que definem os subconjuntos (''by'', que deve ser uma lista), e a função a calcular de cada vetor do //data frame// (''FUN''). | + | Os argumentos básicos da função são o objeto com os valores (''x''), o(s) fator(es) que definem os subgrupos (''by'', que deve ser uma lista), e a função a ser aplicada a cada vetor em ''x'' (''FUN''). |
Linha 686: | Linha 687: | ||
[3,] 3 3 3 3 | [3,] 3 3 3 3 | ||
</code> | </code> | ||
- | Os índices entre colchetes são a referência do par [linha,coluna]((a notação [,1] significa "todas as linhas da coluna 1", mais detalhes no ítem sobre indexação, mais abaixo)). Esses índices são exibidos quando as dimensões não têm nomes, que são controlados pelas funções ''rownames'' e ''colnames'': | + | Os índices entre colchetes são a referência do par [linha,coluna]((a notação [,1] significa "todas as linhas da coluna 1", mais detalhes no item sobre indexação, mais abaixo)). Esses índices são exibidos quando as dimensões não têm nomes, que são controlados pelas funções ''rownames'' e ''colnames'': |
<code rsplus> | <code rsplus> | ||
Linha 827: | Linha 828: | ||
- Quais são as classes desses dois objetos? | - Quais são as classes desses dois objetos? | ||
- Calcule a média de cada uma das quatro medidas por espécie, dos dois objetos. | - Calcule a média de cada uma das quatro medidas por espécie, dos dois objetos. | ||
- | - Os nomes das variaveis estão em inglês. Mude-os para português no objeto ''iris''. (//DICA: Como tudo mais no R, os resultados da função ''names'' podem ser armazenados em um objeto//) | + | - Os nomes das variáveis estão em inglês. Mude-os para português no objeto ''iris''. (//DICA: Como tudo mais no R, os resultados da função ''names'' podem ser armazenados em um objeto//) |
</box> | </box> | ||
Linha 879: | Linha 880: | ||
</code> | </code> | ||
- | Os elementos da matriz são a probabilidades de transição, num intervalo de tempo, do estágio correspondente ao número da coluna para o estágio correspondente ao número da linha. Por exemplo, a chance de um indivíduo passar do estágio 1 para o 2 é 0,33, e de permanecer em 1 é de 0,43. | + | Os elementos da matriz são as probabilidades de transição, num intervalo de tempo, do estágio correspondente ao número da coluna para o estágio correspondente ao número da linha. Por exemplo, a chance de um indivíduo passar do estágio 1 para o 2 é 0,33, e de permanecer em 1 é de 0,43. |
- 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 890: | 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 901: | Linha 902: | ||
[1] NA | [1] NA | ||
Warning message: | Warning message: | ||
- | argument is not numeric or logical: returning NA in: mean.default(sp) | + | argument 'is' not numeric or logical: returning NA in: mean.default(sp) |
> | > | ||
</code> | </code> | ||
- | Mas existem algumas operações que são próprias desse tipo de vetores: | + | Mas existem muitas operações que funcionam ou são próprias desse tipo de vetores: |
<code rsplus> | <code rsplus> | ||
- | > sort( sp ) | + | > sort( sp ) # ordenação de caracteres em ordem crescente |
[1] "Myrcia sulfiflora" "Myrcia sulfiflora" "Syagrus romanzoffianus" | [1] "Myrcia sulfiflora" "Myrcia sulfiflora" "Syagrus romanzoffianus" | ||
[4] "Tabebuia cassinoides" | [4] "Tabebuia cassinoides" | ||
> | > | ||
- | > grep("Myrcia", sp) | + | > grep("Myrcia", sp) # busca por elementos do vetor de caracteres contendo "Myrcia" |
[1] 1 4 | [1] 1 4 | ||
> | > | ||
- | > table( sp ) | + | > table( sp ) # contagem do numero de elementos para cada classe de elemento |
sp | sp | ||
Myrcia sulfiflora Syagrus romanzoffianus Tabebuia cassinoides | Myrcia sulfiflora Syagrus romanzoffianus Tabebuia cassinoides | ||
2 1 1 | 2 1 1 | ||
+ | > | ||
+ | > sub("Myrcia", "M.", sp ) # substituição de caracteres | ||
+ | [1] "M. sulfiflora" "Syagrus romanzoffianus" "Tabebuia cassinoides" "M. sulfiflora" | ||
+ | > | ||
+ | > strsplit(sp, " ") # divisão de cada elemento do vetor por um dado caractere ou símbolo (no caso, um espaço) | ||
+ | [[1]] | ||
+ | [1] "Myrcia" "sulfiflora" | ||
+ | |||
+ | [[2]] | ||
+ | [1] "Syagrus" "romanzoffianus" | ||
+ | |||
+ | [[3]] | ||
+ | [1] "Tabebuia" "cassinoides" | ||
+ | |||
+ | [[4]] | ||
+ | [1] "Myrcia" "sulfiflora" | ||
+ | > | ||
</code> | </code> | ||
+ | |||
+ | Também é possível concatenar vetores de caracteres usando a função ''paste'': | ||
+ | |||
<code rsplus> | <code rsplus> | ||
Linha 934: | 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 1047: | 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 1066: | Linha 1087: | ||
> sum(notas.dos.alunos>=5) | > sum(notas.dos.alunos>=5) | ||
[1] 14 | [1] 14 | ||
- | ##Qual a proporção deste valores em relação ao total? | + | ##Qual a proporção deste valor em relação ao total? |
> sum(notas.dos.alunos>=5)/length(notas.dos.alunos) | > sum(notas.dos.alunos>=5)/length(notas.dos.alunos) | ||
[1] 0.7777778 | [1] 0.7777778 | ||
Linha 1127: | Linha 1148: | ||
===== Subconjuntos e Indexação ===== | ===== Subconjuntos e Indexação ===== | ||
- | Freqüentemente 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** do 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 1146: | Linha 1167: | ||
- | B) **Vetor de números inteiros negativos**: os números se referem as posições **não** desejadas do vetor indexado. | + | B) **Vetor de números inteiros negativos**: os números se referem às posições **não** desejadas do vetor indexado. |
<code rsplus> | <code rsplus> | ||
a | a | ||
Linha 1161: | 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 1178: | 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 1190: | 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 1214: | 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 | ||
Linha 1229: | Linha 1251: | ||
==== Indexação de Fatores ==== | ==== Indexação de Fatores ==== | ||
- | A indexação de um fator pode resultar em níveis não usados. Caso você queira exluir esses níveis, use o argumento ''drop'', do operador ''[]'': | + | A indexação de um fator pode resultar em níveis não usados. Caso você queira excluir esses níveis, use o argumento ''drop'', do operador ''[]'': |
<code rsplus> | <code rsplus> | ||
> tratamentos | > tratamentos |