Como combinar expressões lógicas em R

A vida seria chata em R se você não poderia combinar declarações lógicas. Se você quiser testar se um número encontra-se dentro de um determinado intervalo de tempo, por exemplo, que pretende verificar se é maior do que o valor mais baixo e menor que o valor superior.

Para ilustrar, vamos supor que você tem dois vetores contendo o número de cestas que Granny e seu amigo Geraldine marcados nos seis jogos desta temporada de basquete:

> baskets.of.Granny lt; - c (12,4,4,6,9,3)> baskets.of.Geraldine lt; - c (5,3,2,2,12,9)

Talvez você quer saber os jogos em que Granny marcou o menor número ou o mais cestas. Para o efeito, R tem um conjunto de operadores lógicos que - você adivinhou - são bem vetorizado.

Para ilustrar, usando o conhecimento que você tem agora, tentar descobrir os jogos em que Granny marcou as cestas menor número e os jogos em que marcou o maior número de cestas:

  1. Criar dois vectores lógicas, como segue:

    > min.baskets lt; - == baskets.of.Granny min (baskets.of.Granny)> max.baskets lt; - == baskets.of.Granny max (baskets.of.Granny)

    min.baskets informa se o valor é igual ao mínimo, e max.baskets informa se o valor for igual ao máximo.

  2. Combinar ambos os vectores com o OU operador (|), do seguinte modo:

> Min.baskets | max.baskets [1] verdadeiro falso false false false VERDADEIRO

Este método não é, na verdade, a forma mais eficiente de encontrar esses valores. Este exemplo mostra claramente como vetorização trabalha para operadores lógicos.

o NÃO operador (!) É outro exemplo do grande poder de vetorização. o N / D valores do vetor x ter causado alguns problemas já, então você provavelmente gostaria de se livrar deles. Você sabe que você tem que verificar se um valor está em falta utilizando o is.na () função.

Mas você precisa os valores que são não valores em falta, então inverter o vetor lógica precedendo-o com o ! operador. Para soltar os valores em falta no vector x, por exemplo, use o seguinte código:

> X [! is.na (x)] [1] 3 6 2 1

Quando você estiver usando R, não há maneira de contornar vetorização. Depois de entender como funciona vetorização, no entanto, você vai economizar tempo de cálculo considerável e linhas de código.

menu