Noter om R
Noter om R
Noter om R
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Operator i R Matematik Betydning<br />
! udtryk ¬udtryk negation; “ikke udtryk”<br />
udtryk1 & udtryk2 udtryk1 ∧ udtryk2 udtryk1 og udtryk2 udtryk1 | udtryk2 udtryk1 ∨ udtryk2 udtryk1 eller udtryk2 udtryk1 && udtryk2 udtryk1 og udtryk2, kun første element (se tekst)<br />
udtryk1 || udtryk2 udtryk1 eller udtryk2, kun første element (se tekst)<br />
Figur 37: Logiske operatorer.<br />
En vektor af sandhedsværdier kan bruges til indeksering af en vektor. Det giver en ny vektor (eller matrix)<br />
med de elementer fra den indekserede vektor, hvor de tilsvarende pladser i indeksvektoren har værdien<br />
TRUE. Dette kan vi bruge sammen med logiske udtryk for at udtage elementer fra en vektor hvor<strong>om</strong> der<br />
gælder noget bestemt:<br />
> x[x>6]<br />
[1] 7 8 9 10<br />
Hvis vi ikke er interesserede i hvilke specifikke elementer fra x der er større end 6 men bare vil vide hvor<br />
mange af tallene i x der er større end 6 kan vi bruge sum:<br />
> sum(x>6)<br />
[1] 4<br />
Dette virker fordi sum “regner” med sandhedsværdier og tæller hvert TRUE s<strong>om</strong> tallet 1 og hvert<br />
FALSE s<strong>om</strong> nul. Så ovenstående fortæller at i vektoren af sandhedsværdier s<strong>om</strong> er resultatet af x>6 er 4<br />
af elementerne TRUE (og resten FALSE).<br />
Logiske udtryk kan k<strong>om</strong>bineres med logiske operatorer; se figur 37. Eksempler:<br />
> x > 2 & x < 9<br />
[1] FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE<br />
> !(x > 2 & x < 9)<br />
[1] TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE<br />
> x = 7<br />
[1] TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE TRUE TRUE<br />
> x[!(x>2 & x x > 2 && x < 9<br />
[1] FALSE<br />
> x = 7<br />
[1] TRUE<br />
Svarene gælder det første element i x, dvs. tallet 1.<br />
Derudover er der den forskel at && og || ikke evaluerer deres anden operand hvis det samlede<br />
udtryks sandhedsværdi kan afgøres alene ud fra den første operand; fx hvis deludtrykket udtryk 1 er sandt<br />
i udtrykket udtryk 1||udtryk 2 så evalueres deludtrykket udtryk 2 slet ikke. Dette kan have betydning hvis<br />
evalueringen af anden operand enten har en sideeffekt eller vil give en fejl. Dobbeltoperatorerne && og<br />
|| anvendes oftest sammen med if ... else udtryk s<strong>om</strong> <strong>om</strong>tales i afsnit 19.2.<br />
73