Olá, meu nome é David Christensen, e nestes lições, você aprenderá como manipular dados com filtragem, resumindo e mesclando. E você também aprenderá como trabalhar com valores ausentes. Nesta lição, mostrarei como filtrar dados. Vamos começar com alguns dados de exemplo. Para fins desta demonstração, usaremos o conjunto de dados mtcars, que está embutido no R. Portanto, não há necessidade de carregar nada especial para acompanhar. Para ver o conjunto de dados mtcars, basta digitar mtcars no console. Isso gera o conjunto de dados. Então, quais são esses dados? Bem, são cerca de 30 observações ou mais sobre veículos que apareceram na revista Motor Trend em 1974. Você pode ver os nomes dos veículos como nomes de linhas. Vamos dar uma olhada rápida em algumas das colunas. As colunas incluem MPG ou milhas por galão, CYL, que é o número de cilindros, deslocamento do motor em polegadas cúbicas, cavalos de potência, o peso do veículo, tipo de transmissão, junto com algum outro veículo atributos. Agora digamos que queremos focar apenas nas primeiras cinco linhas do dados e ignorar todo o resto. Para isso, podemos usar a função head. Essa é a cabeça, então abra os parênteses, seguido pelos dados que queremos filtrar. Neste caso, mtcars, depois uma vírgula, e então n é igual a cinco, fechando parênteses. Pressionarei control enter para executar esta linha de código. E aqui vamos nós. Temos as primeiras cinco linhas do conjunto de dados. Se quiséssemos uma contagem diferente de linhas, poderíamos ter inserido em vez disso, um valor n diferente. Isso poderia ter sido 10 ou 15 ou 100 ou tantas linhas do dados que queríamos ver. E se quiséssemos ver as últimas cinco linhas do conjunto de dados em vez das primeiras cinco linhas? Bem, poderíamos usar a função tail. Tail retornará as últimas linhas de acordo com sua especificação. Para obter as últimas linhas, você pode digitar tail, parênteses, carros mt, depois uma vírgula e você adivinhou, n é igual a cinco, seguido por um parênteses de fechamento. Vou pressionar control e entrar, e isso produzirá as últimas cinco linhas. Cabeça e cauda são úteis. Eu os uso o tempo todo quando quero apenas ver o primeiro ou as últimas linhas de um conjunto de dados. Mas para uma filtragem robusta, precisaremos aprender a filtrar por índice ou com vetores lógicos. Vamos dar uma olhada nisso. Para introduzir a filtragem de índice, digamos que queremos apenas o da sexta à décima linha do conjunto de dados mtcars. As funções head e tail não funcionarão para isso, mas poderíamos remar e filtro de coluna para os dados que desejamos. Para filtrar por índice, primeiro digitaremos mtcars, seguido por um colchete, e então dentro do colchete, digitaremos o índice para o que queremos filtrar. Vamos fazer uma tentativa rápida digitando seis dois pontos 10. Seis dois pontos 10 é a mesma coisa que se tivéssemos digitado seis, sete, oito, nove e 10. Vamos executar seis dois pontos 10 em sua própria linha para que você possa ver isso em Ação. Como você pode ver, temos seis, sete, oito, nove, 10. Ok, então colocaremos seis dois pontos 10 entre colchetes e depois digitaremos um colchete de fechamento e pressionaremos control e enter. O que conseguimos? Na saída, vemos todas as linhas, mas apenas a sexta até a 10ª coluna, junto com os rótulos das linhas. Bem, não é bem isso que queremos. Para obter as linhas em vez das colunas, precisaremos adicionar um vírgula após o 10 e execute o código. Vamos em frente e tentar isso. Agora obtemos as linhas corretas por valor de índice. Um pequeno ponto que gostaria de acrescentar: podemos filtrar por coluna e valores de índice ao mesmo tempo. Os valores de índice da coluna podem ser adicionados após a vírgula. Se quisermos apenas as duas primeiras colunas de dados e a sexta até a 10ª linha, podemos adicionar dois pontos dois após o vírgula. Vamos prosseguir e executar este código. Carros vazios, colchetes, seis dois pontos 10, vírgula, um dois pontos dois, fechando colchete. Ótimo. Isso retorna duas colunas, a coluna MPG, junto com o coluna do cilindro da sexta à 10ª linha. Agora que entendemos a sintaxe da filtragem de índice, podemos começar a adicionar operadores lógicos para determinar o valores de índice que queremos usar. Vamos considerar o seguinte. Digamos que queremos retornar fileiras de carros vazios onde quilômetros por galão é superior a 25. Queremos saber quais linhas são para carros que recebem boa gasolina quilometragem pelos padrões de 1974. Aqui está o que podemos fazer. Podemos digitar a função which e dentro da qual podemos digitar carros vazios, o cifrão e depois MPG. Portanto, temos a coluna MPG de carros vazios e queremos expressar que é maior que 25. Vamos retornar esta linha de código. São retornados os números das linhas que desejamos, linhas 18, 19, 20, 26, 27, e 28. Estes são os valores de índice que precisamos. Poderíamos ir em frente e colocar esses valores entre nossos colchete para filtrar. Por exemplo, carros vazios, colchete, 18, vírgula, o colchete de fechamento irá filtrar para mostrar a primeira linha que queremos, mas não precisamos fazer isso. Podemos escrever nosso filtro entre colchetes. Vamos em frente e fazer isso. Então temos carros vazios, colchetes, qual, parênteses, carros vazios, cifrão, MPG, maior que 25, fechando parênteses, vírgula e fechando o colchete. Vamos em frente e pressionar control e entrar ao mesmo tempo. E agora filtramos nossos dados com sucesso para mostrar apenas carros com milhas por galão superiores a 25. Agora que vimos a filtragem de índice, vamos ver como pode expressar a mesma coisa, mas com menos código. Lembre-se, a instrução which retornou os números das linhas 18, 19, 20, 26, 27 e 28. Vamos remover a instrução which e digitar vazio carros, cifrão, MPG, maior que 25 e controle de imprensa e digitar. Na saída, obtemos um vetor lógico. Obtemos valores falso, falso, falso, falso, falso, falso, falso, falso, falso, falso, até o 18º valor de a lista, o que é verdade. Os valores 18, 19, 20, 26, 27 e 28 são exibidos como verdadeiro. Podemos adicionar este vetor lógico entre nossos colchetes para filtro. Por diversão, vamos em frente e fazer isso. Aqui está aquele vetor lógico colado entre colchetes. E se executarmos esta linha de código, obteremos as linhas onde milhas por galão é maior que 25. Mas em vez de digitar esse longo vetor lógico entre nossos colchetes, poderíamos apenas digitar carros vazios, colchete, carros vazios, cifrão, MPG, maior que 25, vírgula, fechamento colchete e execute esta linha de código. Como antes, filtramos com sucesso os carros vazios para apenas mostre linhas onde milhas por galão são maiores que 25. Uma coisa a ter em mente com vetores lógicos é que eles pode ser reciclado. Com isso quero dizer que os vetores de verdadeiros e falsos não não precisa ter o mesmo comprimento dos dados que estão filtrando. Você poderia, por exemplo, digitar false, false, true para retornar cada terceira linha. Ou falso, verdadeiro para retornar linhas alternadas. Ou true para retornar todas as linhas. Ou false para não retornar nenhuma linha. Tudo isso está entre colchetes. Esse tipo de filtragem é muito útil em situações como como ao filtrar linhas pares ou ímpares. Mas também pode ser mal aplicado se você tiver um teste lógico que tem um comprimento diferente dos dados que você está filtrando. No próximo vídeo, veremos como combinar vários filtros juntos e, em seguida, criando resumos sobre o dados filtrados. Obrigado por assistir.