07.01.2013 Aufrufe

Grafiken und Statistik in R

Grafiken und Statistik in R

Grafiken und Statistik in R

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

�<br />

{}<br />

if()<br />

ifelse()<br />

stop()<br />

switch()<br />

5.2 Funktionsbauste<strong>in</strong>e 5 Programmierung<br />

Die Benutzerfunktion arrowLegend() auf Seite 212 ist e<strong>in</strong>e erweiterte Variante der hier besprochenen Funktion.<br />

Das Kommentieren von Programmcode sollte man generell nicht vergessen, denn nach 3 Jahren weiß man nämlich<br />

sehr wahrsche<strong>in</strong>lich nicht mehr, wofür diese oder jene Funktion eigentlich mal gedacht war . . . ;-).<br />

5.2 Funktionsbauste<strong>in</strong>e<br />

Mit Hilfe e<strong>in</strong>facher Kontrollstrukturen, wie if, switch oder for läßt sich so manches leicht zusammenbasteln.<br />

Man f<strong>in</strong>det sie nicht über ?if, sondern <strong>in</strong> der Hilfe unter ?Control. Als gute Praxis hat es sich bewährt, alle<br />

Klammern immer zu kommentieren:<br />

{# start ...<br />

# . . . Code hier<br />

}# end ...<br />

Die Funktion if ist für e<strong>in</strong>fache Abfragen:<br />

zahl 3){<br />

# größer 3<br />

# Code hier...<br />

} else {<br />

# kle<strong>in</strong>er gleich 3<br />

# Code hier ...<br />

}# end if(zahl)<br />

if(zahl > 3) 'größer' else 'kle<strong>in</strong>er' # Kurzvariante ohne {}<br />

Die Kurzvariante ohne {...} funktioniert im Allgeme<strong>in</strong>en nur bis e<strong>in</strong>schließlich der nächsten Zeile.<br />

# Kurzvariante von if ... else ...:<br />

ifelse(daten > 3, "black", "gray")<br />

# funktioniert z.B. <strong>in</strong>nerhalb von text(...)<br />

Innerhalb von Funktionen ist e<strong>in</strong> if() komb<strong>in</strong>iert mit stop() recht nützlich, um dem Benutzer weitere H<strong>in</strong>weise<br />

zu geben, wie die Funktion zu gebrauchen ist oder welche Argumente noch fehlen:<br />

if(miss<strong>in</strong>g(text)) # stop hier mit Erklärung<br />

stop("Stop hier 'text = \"some text\"' fehlt. Benutze:\nfunktion(text='Me<strong>in</strong> Text.')")<br />

Die Funktion switch() erledigt Abfragen zu mehreren Werten. Sie ist quasi e<strong>in</strong>e mehrfach if()-Funktion:<br />

text

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!