Sådan Kombiner Logiske Udtalelser i R

Livet ville være kedeligt i R, hvis du ikke kunne kombinere logiske udsagn. Hvis du ønsker at teste, om et tal ligger inden for et bestemt interval, for eksempel, du ønsker at kontrollere, om det er større end den laveste værdi og mindre end den øverste værdi.

For at illustrere, lad os antage, at du har to vektorer indeholdende antallet af kurve, Granny og hendes ven Geraldine scoret i de seks kampe i denne basketball sæson:

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

Måske du ønsker at kende de spil, hvor Granny scorede færrest eller flest kurve. Til det formål R har et sæt logiske operatorer som - du gættede det - er pænt vektoriseret.

For at illustrere, at bruge den viden, du har nu, så prøv at finde ud af de spil, hvor Granny scorede færrest kurve og de spil, hvor hun scorede flest kurve:

  1. Opret to logiske vektorer, som følger:

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

    min.baskets fortæller dig, om værdien er lig med minimum og max.baskets fortæller dig, om værdien er lig med den maksimale.

  2. Kombiner begge vektorer med operatoren OR (|), som følger:

> min.baskets | max.baskets
[1] true false false false false true

Denne metode er faktisk ikke den mest effektive måde at finde disse værdier. Dette eksempel viser tydeligt, hvordan vectorization arbejder for logiske operatorer.

The NOT operatør (!) Er et andet eksempel på den store magt vectorization. De NA værdier i vektoren x har forårsaget nogle problemer allerede, så du ville nok gerne slippe af med dem. Du ved, at du er nødt til at kontrollere, om en værdi mangler ved at bruge is.na () funktion.

Men du har brug for de værdier, der ikke er manglende værdier, så vend den logiske vektor ved foregående den med! operatør. At droppe manglende værdier i vektoren x, for eksempel, kan du bruge følgende kode:

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

Når du bruger R, er der ingen måde at komme rundt vectorization. Når du forstår, hvordan vectorization virker dog kan du spare megen tid og linjer kode beregning.


© 2019 Zajacperrone.com | Contact us: webmaster# zajacperrone.com