Come combinare dichiarazioni logiche in R

La vita sarebbe noiosa in R se non è possibile combinare le dichiarazioni logiche. Se si desidera verificare se un numero si trova all'interno di un certo intervallo, per esempio, si desidera controllare se è superiore al valore minimo e inferiore al valore superiore.

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)

Forse si vuole conoscere i giochi in cui nonna ha ottenuto il minor numero o il maggior numero di canestri. A tal fine, R ha una serie di operatori logici che - avete indovinato - sono ben vettorializzare.

Per illustrare, utilizzando le conoscenze che avete ora, cercare di scoprire i giochi in cui Granny segnato il minor numero di canestri ed i giochi in cui ha ottenuto il maggior numero di canestri:

  1. Creare due vettori logici, come segue:

    > Min.baskets <- baskets.of.Granny == min (baskets.of.Granny)
    > Max.baskets <- baskets.of.Granny == max (baskets.of.Granny)

    min.baskets indica se il valore è pari al minimo, e max.baskets ti dice se il valore è pari al massimo.

  2. Combinare i due vettori con l'operatore OR (|), come segue:

> min.baskets | max.baskets
[1] VERO FALSO FALSO FALSO FALSO VERO

Questo metodo in realtà non è il modo più efficace per trovare quei valori. Questo esempio mostra chiaramente come funziona vettorizzazione per gli operatori logici.

L'operatore NOT (!) È un altro esempio del grande potere di vettorizzazione. I valori NA nel vettore x hanno causato qualche problema già, quindi probabilmente vuoi sbarazzarsi di loro. Sai che devi controllare se un valore è mancante utilizzando la funzione is.na ().

Ma è necessario i valori che non mancano i valori, in modo da invertire il vettore logico facendolo precedere con la! operator. Per eliminare i valori mancanti nel vettore x, ad esempio, utilizzare il seguente codice:

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

Quando si utilizza R, non c'è modo per aggirare vettorializzazione. Dopo aver capito come funziona vettorizzazione, tuttavia, si risparmia molto tempo di calcolo e di linee di codice.