Ferramentas do usuário

Ferramentas do site


03_apostila:04-dados

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
Próxima revisão Ambos lados da revisão seguinte
03_apostila:04-dados [2020/08/20 16:10]
adalardo
03_apostila:04-dados [2023/08/14 19:13]
127.0.0.1 edição externa
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 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 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 295: Linha 296:
 ==== Atributos de um Objeto de Dados ==== ==== Atributos de um Objeto de Dados ====
  
-Todo objeto no R tem dois atributos básicos, que são o tipo de dado que contém((em termos técnicos, trata-se do modo de armazenamento,​ e.g., apenas números, apenas caracteres, ou uma mistura, que é uma lista)) e o número de elementos que contêm. As funções ''​mode''​ e ''​length''​ retornam esses atributos:+Todo objeto no R tem dois atributos básicos, que são o tipo de dado((em termos técnicos, trata-se do modo de armazenamento,​ e.g., apenas números, apenas caracteres, ou uma mistura, que é uma lista)) e o número de elementos que contêm. As funções ''​mode''​ e ''​length''​ retornam esses atributos:
 <code rsplus> <code rsplus>
 > pares > pares
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 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 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 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.
Linha 1032: Linha 1033:
  
 O sinal de igualdade faz uma comparação entre dois elementos. ​ No R o sinal de igualdade são dois sinais de igual seguidos (**==**). Este operador retorna o resultado do teste lógico //"a igual b?"//, que só pode ter dois valores, ''​T''​ (verdadeiro),​ ou ''​F''​ (falso): O sinal de igualdade faz uma comparação entre dois elementos. ​ No R o sinal de igualdade são dois sinais de igual seguidos (**==**). Este operador retorna o resultado do teste lógico //"a igual b?"//, que só pode ter dois valores, ''​T''​ (verdadeiro),​ ou ''​F''​ (falso):
-<​code>​+<​code ​rsplus>
 > a = 2 + 2 > a = 2 + 2
 > a == 4 > a == 4
Linha 1048: Linha 1049:
  
 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>​+<​code ​rsplus>
 > f > f
 [1]  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE [1]  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE
Linha 1059: Linha 1060:
 </​code>​ </​code>​
 Para ter frequência de dados que satisfaçam uma certa condição basta somar o vetor lógico resultante: Para ter frequência de dados que satisfaçam uma certa condição basta somar o vetor lógico resultante:
-<​code>​+<​code ​rsplus>
 > notas.dos.alunos > notas.dos.alunos
  ​[1] ​ 6.0  5.1  6.8  2.8  6.1  9.0  4.3 10.4  6.0  7.9  8.9  6.8  9.8  4.6 11.3  ​[1] ​ 6.0  5.1  6.8  2.8  6.1  9.0  4.3 10.4  6.0  7.9  8.9  6.8  9.8  4.6 11.3
Linha 1066: Linha 1067:
 > 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 1077: Linha 1078:
  
 Considere o seguinte vetor: Considere o seguinte vetor:
-<​code>​+<​code ​rsplus>
 >  cores = c("​amarelo","​vermelho","​azul","​laranja"​) >  cores = c("​amarelo","​vermelho","​azul","​laranja"​)
 > >
 </​code>​ </​code>​
 Para gerar uma amostra, com reposição,​ dessas cores execute o comando: Para gerar uma amostra, com reposição,​ dessas cores execute o comando:
-<​code>​+<​code ​rsplus>
 > muitas.cores = sample(cores,​ 20, TRUE) > muitas.cores = sample(cores,​ 20, TRUE)
 > muitas.cores > muitas.cores
Linha 1100: Linha 1101:
  
 Para gerar uma amostra de 1000 números de uma distribuição Normal com média 23 e desvio padrão 5, utilize o comando: Para gerar uma amostra de 1000 números de uma distribuição Normal com média 23 e desvio padrão 5, utilize o comando:
-<​code>​+<​code ​rsplus>
 > vnormal = rnorm(1000, 23, 5) > vnormal = rnorm(1000, 23, 5)
 </​code> ​ </​code> ​
Linha 1127: Linha 1128:
 ===== 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>​+<​code ​rsplus>
 > a > a
 [1]  1.0000000 10.0000000 ​ 3.4000000 ​ 3.1415927 ​ 0.7853982 ​ 0.3678794 ​ 0.8020016 [1]  1.0000000 10.0000000 ​ 3.4000000 ​ 3.1415927 ​ 0.7853982 ​ 0.3678794 ​ 0.8020016
Linha 1146: Linha 1147:
  
  
-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>​+<​code ​rsplus>
  a  a
 [1]  1.0000000 10.0000000 ​ 3.4000000 ​ 3.1415927 ​ 0.7853982 ​ 0.3678794 ​ 0.8020016 [1]  1.0000000 10.0000000 ​ 3.4000000 ​ 3.1415927 ​ 0.7853982 ​ 0.3678794 ​ 0.8020016
Linha 1162: Linha 1163:
  
 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>​+<​code ​rsplus>
 > b > b
 [1] 1 2 3 4 5 6 7 8 [1] 1 2 3 4 5 6 7 8
Linha 1179: Linha 1180:
  
 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>​+<​code ​rsplus>
 > b > b
 [1] 1 2 3 4 5 6 7 8 [1] 1 2 3 4 5 6 7 8
Linha 1190: Linha 1191:
  
 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>​+<​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 substituida por "​Abuso",​ por esse motivo para rodar as linhas de código deve retornar a palavra para o idioma inglesa. ​
Linha 1215: Linha 1216:
  
 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>​+<​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á"​)
Linha 1229: Linha 1230:
  
 ==== 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>​+<​code ​rsplus>
 > tratamentos > tratamentos
  [1] Controle Controle Controle Controle Adubo A  Adubo A  Adubo A  Adubo A  [1] Controle Controle Controle Controle Adubo A  Adubo A  Adubo A  Adubo A
Linha 1257: Linha 1258:
 O modo de indexação de matrizes é ''​[linhas,​colunas]'':​ O modo de indexação de matrizes é ''​[linhas,​colunas]'':​
  
-<​code>​+<​code ​rsplus>
 > matriz > matriz
      [,1] [,2] [,3] [,4]      [,1] [,2] [,3] [,4]
Linha 1275: Linha 1276:
 A mesma notação é válida para //data frames//: A mesma notação é válida para //data frames//:
  
-<​code>​+<​code ​rsplus>
 > USArrests[1:​5,​c(2,​4)] > USArrests[1:​5,​c(2,​4)]
            ​Assault abuso            ​Assault abuso
Linha 1304: Linha 1305:
 Para incluir todas as linhas ou colunas, omita o valor (mas mantenha a vírgula!): Para incluir todas as linhas ou colunas, omita o valor (mas mantenha a vírgula!):
  
-<​code>​+<​code ​rsplus>
 > matriz[,1] > matriz[,1]
 [1] 1 2 3 [1] 1 2 3
Linha 1333: Linha 1334:
 A notação é estendida para um //array// de qualquer dimensão, como o objeto ''​Titanic'',​ que tem quatro dimensões: ​ A notação é estendida para um //array// de qualquer dimensão, como o objeto ''​Titanic'',​ que tem quatro dimensões: ​
  
-<​code>​+<​code ​rsplus>
 > dimnames(Titanic) > dimnames(Titanic)
 $Class $Class
Linha 1374: Linha 1375:
 Combinando as operações de indexação e de atribuição é possível alterar os valores de qualquer parte de um objeto: Combinando as operações de indexação e de atribuição é possível alterar os valores de qualquer parte de um objeto:
  
-<​code>​+<​code ​rsplus>
 > zoo > zoo
  ​onça ​ anta  tatu guará  ​onça ​ anta  tatu guará
Linha 1411: Linha 1412:
 Com a indexação é possível mudar a ordem de um vetor: Com a indexação é possível mudar a ordem de um vetor:
  
-<​code>​+<​code ​rsplus>
 > zoo > zoo
       onça       ​anta ​      tatu lobo-guará       onça       ​anta ​      tatu lobo-guará
Linha 1427: Linha 1428:
 A função ''​order''​ retorna os **índices** dos elementos de um vetor: A função ''​order''​ retorna os **índices** dos elementos de um vetor:
  
-<​code>​+<​code ​rsplus>
 ##Vetor de nomes do vetor zoo: ##Vetor de nomes do vetor zoo:
 > names(zoo) > names(zoo)
Linha 1438: Linha 1439:
  
 E com isso podemos usar seu resultado para ordenar um vetor em função de quaisquer outros: E com isso podemos usar seu resultado para ordenar um vetor em função de quaisquer outros:
-<​code>​+<​code ​rsplus>
 > zoo[order(names(zoo))] > zoo[order(names(zoo))]
       anta lobo-guará ​      ​onça ​      tatu       anta lobo-guará ​      ​onça ​      tatu
Linha 1446: Linha 1447:
 O argumento da função comporta múltiplos vetores de critério. Em caso de empate pelo(s) primeiro(s) critério(s),​ os seguintes são usados: O argumento da função comporta múltiplos vetores de critério. Em caso de empate pelo(s) primeiro(s) critério(s),​ os seguintes são usados:
  
-<​code> ​+<​code ​rsplus
 > cidades > cidades
                  ​regiao estado pop.2007                  ​regiao estado pop.2007
Linha 1498: Linha 1499:
 <box 100% left | //​**Exercício 4.13.** Comando Curto, Resultado nem Tanto//> <box 100% left | //​**Exercício 4.13.** Comando Curto, Resultado nem Tanto//>
 Verifique o resultado do comando: Verifique o resultado do comando:
-<​code>​+<​code ​rsplus>
 > ?"​["​ > ?"​["​
 </​code> ​ </​code> ​
Linha 1505: Linha 1506:
 <box 100% left | //​**Exercício 4.14** Indexação de Listas//>​ <box 100% left | //​**Exercício 4.14** Indexação de Listas//>​
 Crie uma lista com o comando: Crie uma lista com o comando:
-<​code>​+<​code ​rsplus>
 minha.lista <- list(um.vetor=1:​5,​ uma.matriz=matrix(1:​6,​2,​3), ​ minha.lista <- list(um.vetor=1:​5,​ uma.matriz=matrix(1:​6,​2,​3), ​
                     um.dframe=data.frame(seculo=c("​XIX","​XX","​XXI"​),​                     um.dframe=data.frame(seculo=c("​XIX","​XX","​XXI"​),​
Linha 1511: Linha 1512:
 </​code>​ </​code>​
 Qual a diferença entre os subconjuntos obtidos com os três comandos a seguir: Qual a diferença entre os subconjuntos obtidos com os três comandos a seguir:
-<​code>​+<​code ​rsplus>
 minha.lista[1] minha.lista[1]
 minha.lista[[1]] minha.lista[[1]]
Linha 1520: Linha 1521:
  
 Para gerar uma amostra de 10.000 números de uma distribuição Normal com média 30 e desvio padrão 7, utilize o comando: Para gerar uma amostra de 10.000 números de uma distribuição Normal com média 30 e desvio padrão 7, utilize o comando:
-<​code>​+<​code ​rsplus>
 > vnormal = rnorm(10000,​ 30, 7) > vnormal = rnorm(10000,​ 30, 7)
 </​code> ​ </​code> ​
03_apostila/04-dados.txt · Última modificação: 2023/08/15 18:33 (edição externa)