Grafiken und Statistik in R
Grafiken und Statistik in R
Grafiken und Statistik in R
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