Como comparar valores em vetores lógicos em R

Para construir vetores lógicos em R, é melhor você saber como comparar valores, e R contém um conjunto de operadores que podem ser utilizados para esta finalidade.

OperadorResultado
x == yretorna VERDADE E se x exactlyequals y
x! = yretorna VERDADE E se x difere de y
x> yretorna VERDADE E se x é largerthan y
x> = yretorna VERDADE E se x é largerthan ou exactamente igual y
x lt; yretorna VERDADE E se x issmaller de y
x lt; = yretorna VERDADE E se x issmaller do que ou igual a exatamente y
x yRetorna o resultado da x e y
x | yRetorna o resultado da x ou y
! xnão retorna x
XOR (x, y)Retorna o resultado de x xor y (x ou y, mas não x andy)

Todos estes operadores são, mais uma vez, vetorizado. Você pode comparar um vetor inteiro com um valor.

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)

Neste jogo de basquete All-Star Grannies imaginário, para descobrir quais jogos Granny marcou mais de cinco cestas, você pode simplesmente usar este código:

> Baskets.of.Granny> 5 [1] false false false Verdadeiro Verdadeiro Verdadeiro

Você pode ver que o resultado é o primeiro, quarto e quinto games. Este exemplo funciona bem para pequenos vetores como este, mas se você tem um tempo muito longo vetor, contando o número de jogos seria um aborrecimento. Para esse efeito, R oferece o delicioso qual() função. Para descobrir quais jogos Granny marcou mais de cinco cestas em, você pode usar o seguinte código:

> Que (baskets.of.Granny> 5) [1] 1 4 5

Com esta linha de código, você realmente faz duas coisas diferentes: Primeiro, você faz um vetor lógico, verificando todos os valores do vector para ver se é maior que cinco. Então você passa que de vetor para o qual() , que devolve os índices na qual o valor é VERDADE.

o qual() função recebe um vetor lógico como argumento. Assim, você pode salvar o resultado de um vector lógica em um objeto e passar isso para o qual() função, como no exemplo seguinte. Você também pode usar todos esses operadores para comparar o valor vetores por valor. Você pode facilmente descobrir os jogos em que Geraldine marcou menos cestas de Granny como este:

> the.best lt; - baskets.of.Geraldine lt; baskets.of.Granny> que (the.best) [1] 1 3 4

Sempre coloque espaços em torno do menor que (lt;) E maior do que (>) Os operadores. Caso contrário, R podem confundir x lt; -3 para a atribuição x lt; - 3. A diferença pode parecer pequena, mas tem um enorme efeito sobre o resultado.

Tecnicamente, você também pode usar o sinal de igual (=) Como uma atribuição para evitar este problema, mas = Também é usado para atribuir valores aos argumentos em funções. Em geral, lt; - é a maneira preferida para atribuir um valor a um objeto, mas muito poucos programadores discordar. Então, cabe a você. a maioria de uso lt; - em seu trabalho.

menu