Come utilizzare vettori logici come indici in R

La funzione di indice in R non tiene solo vettori numerici come argomenti; funziona anche con vettori logici. È possibile utilizzare questi vettori logici in modo molto efficiente per selezionare alcuni valori da un vettore.

Se si utilizza un vettore logico indice, R restituisce un vettore con solo i valori per i quali il vettore logica è vero. Per illustrare, supponiamo di avere due vettori contenenti il ​​numero di canestri che nonna e la sua amica Geraldine ha segnato in sei partite di questa stagione di basket:

> Baskets.of.Granny <- c (12,4,4,6,9,3)
> Baskets.of.Geraldine <- c (5,3,2,2,12,9)

Utilizzare un vettore logico, the.best, per dirvi i giochi in cui Granny segnato più di Geraldine ha fatto. Se volete sapere quante ceste Granny ha segnato in questi giochi, è possibile utilizzare questo codice:

> Baskets.of.Granny [the.best]
[1] 12 5 6

Questo costrutto è spesso usato per tenere solo i valori che soddisfano un certo requisito. Se si desidera mantenere solo i valori più grandi di 2 nel vettore x, si può fare con il seguente codice:

> X <- c (3, 6, 1, NA, 2)
> X [x> 2]
[1] 3 6 NA

Aspetta - che cosa è che il valore NA facendo lì? Fate un passo indietro, e guardare il risultato di x> 2:

> X> 2
[1] TRUE TRUE FALSE FALSE NA

Se si dispone di un valore mancante nel vostro vettore, qualsiasi confronto restituisce NA per quel valore.

Può sembrare che questo si traduce in NA TRUE, ma che non è il caso. Se si dà NA come valore per l'indice, R mette NA in quel luogo pure. Quindi, in questo caso, R mantiene i primi e secondi valori di x, gocce terzo, aggiunge un valore mancante, e scende l'ultimo valore di x pure.