Cómo comparar los valores en los vectores lógicos en r
Para construir vectores lógicos en R, es mejor que sepa cómo comparar valores y R contiene un conjunto de operadores que se pueden utilizar para este propósito.
Operador | Resultado |
---|---|
x == y | Devoluciones CIERTO si X exactlyequals y |
! x = y | Devoluciones CIERTO si X difiere de y |
x> y | Devoluciones CIERTO si X es largerthan y |
x> = y | Devoluciones CIERTO si X es largerthan o exactamente igual a y |
X lt; y | Devoluciones CIERTO si X es más pequeña que y |
X lt; = y | Devoluciones CIERTO si X issmaller que o exactamente igual a y |
X y | Devuelve el resultado de X y y |
x | y | Devuelve el resultado de X o y |
! X | No devoluciones X |
xor (x, y) | Devuelve el resultado de x xor y (x o y pero no x andy) |
Todos estos operadores son, de nuevo, vectorizados. Usted puede comparar su conjunto un vector con un valor.
Vamos a suponer que usted tiene dos vectores que contienen el número de canastas que la abuela y su amiga Geraldine anotó a los seis partidos de esta temporada de baloncesto:
> Baskets.of.Granny lt; - c (12,4,4,6,9,3)> baskets.of.Geraldine lt; - c (5,3,2,2,12,9)
En este imaginario juego de baloncesto All-Star abuelitas, para saber qué juegos Granny anotó más de cinco cestas, puede simplemente utilizar este código:
> Baskets.of.Granny> 5 [1] TRUE FALSE FALSE TRUE FALSE TRUE
Se puede ver que el resultado es el primero, cuarto, y quinto juegos. Este ejemplo funciona bien para los pequeños vectores como ésta, pero si usted tiene un vector muy largo, contando el número de juegos sería una molestia. Para ello, R ofrece la deliciosa cual() función. Para averiguar qué juegos Granny anotó más de cinco cestas, puede utilizar el siguiente código:
> Cuales (baskets.of.Granny> 5) [1] 1 4 5
Con esta línea de código, que realmente hacen dos cosas diferentes: En primer lugar, se hace un vector lógico comprobando todos los valores en el vector para ver si es superior a cinco. Luego se pasa ese vector a la cual() función, que devuelve los índices en el que el valor se CIERTO.
los cual() función toma un vector lógico como argumento. Por lo tanto, puede guardar el resultado de un vector lógico en un objeto y pasar eso a la cual() función, como en el siguiente ejemplo. También puede utilizar todos estos operadores para comparar el valor vectores por valor. Usted puede encontrar fácilmente los partidos en los que anotó Geraldine menos cestas de la abuela como esto:
> The.best lt; - baskets.of.Geraldine lt; baskets.of.Granny> que (the.best) [1] 1 3 4
Siempre ponga espacios alrededor de la menor que (lt;) Y mayor que (>) Operadores. De lo contrario, R puede confundir X lt; -3 para la asignación X lt; - 3. La diferencia puede parecer pequeña, pero tiene un efecto enorme en el resultado.
Técnicamente, también puede utilizar el signo igual (=) Como una asignación para evitar este problema, pero = También se utiliza para asignar valores a los argumentos en funciones. En general, lt; - es la mejor forma de asignar un valor a un objeto, pero un buen número de programadores no están de acuerdo. Por lo tanto, le toca a usted. La mayor utilización lt; - en su trabajo.