18.07.2013 Views

Noter om R

Noter om R

Noter om R

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!