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.
Operador | Resultado |
---|---|
x == y | retorna VERDADE E se x exactlyequals y |
x! = y | retorna VERDADE E se x difere de y |
x> y | retorna VERDADE E se x é largerthan y |
x> = y | retorna VERDADE E se x é largerthan ou exactamente igual y |
x lt; y | retorna VERDADE E se x issmaller de y |
x lt; = y | retorna VERDADE E se x issmaller do que ou igual a exatamente y |
x y | Retorna o resultado da x e y |
x | y | Retorna o resultado da x ou y |
! x | nã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.