Wie nahezu jede andere Pro­gram­mier­spra­che un­ter­stützt auch die funk­tio­na­le und ob­jekt­ori­en­tier­te Sprache R die Kon­troll­struk­tur der For-Schleife. Mit einer For-Loop in R können Sie durch eine Auf­zäh­lung iterieren oder aber Zähl­schlei­fen rea­li­sie­ren.

Web­hos­ting
Das beste Web­hos­ting zum Spit­zen­preis
  • 3x schneller und 60 % günstiger
  • Maximale Ver­füg­bar­keit mit > 99.99 %
  • Nur bei IONOS: Bis zu 500 GB Spei­cher­platz inklusive

Ein­satz­mög­lich­kei­ten

Egal, ob Sie gerade erst das Pro­gram­mie­ren lernen oder bereits länger eigene Programme ent­wi­ckeln, eine For-Schleife ist Ihnen sicher bereits begegnet.

Wie in anderen Sprachen auch wird die For-Loop in der R-Pro­gram­mie­rung immer dann ein­ge­setzt, wenn die Anzahl an Schlei­fen­durch­läu­fen im Vorhinein bekannt ist und Sie bestimmte Code­blö­cke wie­der­holt ausführen möchten. Eine For-Loop ist also das Mittel der Wahl, wenn Sie bei­spiels­wei­se einen Zähler in Ihrem Programm im­ple­men­tie­ren möchten, der bis zur Zahl fünf hochzählt.

Viele Pro­gram­mier­spra­chen wie z. B. Java un­ter­stüt­zen außerdem das Konzept der Foreach-Loop, mit der Sie direkt durch einen Array oder eine Liste iterieren und auf jedes Element der Da­ten­struk­tur zugreifen können. Das ist ins­be­son­de­re dann praktisch, wenn Sie eine Operation für alle Elemente einer Da­ten­struk­tur durch­füh­ren möchten. Auch in R wird diese Variante einer For-Schleife un­ter­stützt. Die Foreach-Loop in R wird ebenfalls mit dem Schlüs­sel­wort „for“ ein­ge­lei­tet.

Im Grunde genommen lässt sich jede For-Loop in R aber auch durch eine While-Schleife ersetzen. Der zentrale Vorteil von For-Schleifen ist neben der erhöhten Les­bar­keit die Kom­pakt­heit des ein­ge­setz­ten Codes.

Tipp

Im Webspace von IONOS können Sie all Ihre Projekte bequem online stellen. Der sichere Web­s­pei­cher sorgt mit re­gel­mä­ßi­gen Backups außerdem dafür, dass Ihre Programme bestens gegen Da­ten­ver­lust geschützt sind.

Die Syntax der R-For-Loop

Wenn Sie eine For-Schleife in R einsetzen möchten, müssen Sie darauf achten, die syn­tak­ti­schen Be­son­der­hei­ten des Schlei­fen­kon­strukts zu be­rück­sich­ti­gen.

Eine For-Loop besteht im Grunde genommen aus zwei we­sent­li­chen Elementen: dem Schlei­fen­kopf und dem Schlei­fen­rumpf. Da es sich bei For-Loops in R um kopf­ge­steu­er­te Schleifen handelt, wird der Schlei­fen­kopf zu­al­ler­erst aus­ge­führt. Erst, wenn die dort spe­zi­fi­zier­te Bedingung zutrifft, wird der Code, den Sie im Schlei­fen­rumpf for­mu­liert haben, aus­ge­führt.

Der Schlei­fen­kopf wird mit dem Schlüs­sel­wort „for“ ein­ge­lei­tet. In runden Klammern folgt dann der Name Ihrer Zähl­va­ria­ble, gefolgt von dem Schlüs­sel­wort „in“. Im Anschluss geben Sie an, durch was genau Sie iterieren möchten. Das kann bei­spiels­wei­se eine Zah­len­ran­ge, aber auch eine Liste oder ein Vektor sein. Der im Anschluss folgende Schlei­fen­rumpf wird durch ge­schweif­te Klammern ge­kenn­zeich­net.

Ver­schie­de­ne R-For-Loops

Zähl­schlei­fen

Wie auch For-Loops in Python arbeiten For-Loops in R in erster Linie mit einer Zah­len­ran­ge. Wenn Sie also alle Zahlen zwischen 1 und 10 auf Ihrem Bild­schirm ausgeben möchten, sieht die ent­spre­chen­de R-For-Loop wie folgt aus:

for (x in 1:10) {
	print(x)
}

Im obigen Code­bei­spiel sehen Sie, dass im Schlei­fen­kopf der R-For-Loop eine Variable x ein­ge­führt wird. Mit dem Schlüs­sel­wort „in“ wird für genau diese Variable spe­zi­fi­ziert, dass sie sich im Wer­te­be­reich zwischen 1 und 10 bewegen soll. Das In­kre­men­tie­ren in ganz­zah­li­gen Schritten übernimmt R hierbei au­to­ma­tisch. Beachten Sie, dass die Zahl, die an zweiter Stelle genannt wird, im Gegensatz zur Python-Range-Funktion in­klu­diert wird.

Sie können mit Ihrer Zähl­schlei­fe auch von einer Zahl her­un­ter­zäh­len. Ver­tau­schen Sie hierfür einfach die beiden Grenzen im Schlei­fen­kopf und nennen Sie die größere Zahl zuerst. Auch hier wird R au­to­ma­tisch für Sie de­kre­men­tie­ren:

for (x in 10:1) {
	print(x)
}

Ihr Programm wird alle Ganz­zah­len beginnend bei 10 und endend bei 1 auf dem Bild­schirm ausgeben.

Foreach-Loops

Obwohl R kein eigenes Schlüs­sel­wort für Foreach-Loops eingebaut hat, können Sie sich in der Pro­gram­mier­spra­che dennoch der Logik von Foreach-Loops bedienen. Auch diese Schleifen werden in R mit dem Schlüs­sel­wort „for“ ein­ge­lei­tet:

cars <- list("limousine", "cabrio", "suv")
for (x in cars) {
	print (x)
}

Hier sehen Sie eine Liste namens cars, in der ver­schie­de­ne Autotypen ge­spei­chert wurden. Die an­schlie­ßen­de R-For-Loop iteriert über jedes Element aus dieser Liste und gibt es auf dem Bild­schirm auf. Der Name des Elements, durch das Sie iterieren möchten (in unserem Falle also cars), wird ebenfalls hinter dem Schlüs­sel­wort „in“ angegeben.

Eine R-For-Loop abbrechen – das Schlüs­sel­wort „break“

Wenn Sie bei­spiels­wei­se in einer Liste nach einem spe­zi­fi­schen Element suchen möchten, kann es hilfreich sein, Ihre For-Loop bereits dann ab­zu­bre­chen, wenn Sie das ent­spre­chen­de Element gefunden haben. So sparen Sie sich in vielen Fällen unnötige Schlei­fen­durch­läu­fe, und Ihr Programm benötigt weniger Re­chen­leis­tung. Hierfür be­inhal­tet R das Schlüs­sel­wort „break“:

cars <- list("limousine", "cabrio", "suv", "supersport", "oldtimer")
for (x in cars) {
print (x)
	if (x == "suv") {
		break
}
}

Im obigen Code­bei­spiel haben wir unsere Liste namens cars erweitert. Wir möchten die Ausgabe von Autotypen auf dem Bild­schirm aber stoppen, sobald wir den Autotyp SUV gefunden haben. Hierfür wird in der R-If-else Bedingung das bereits erwähnte Schlüs­sel­wort „break“ ein­ge­setzt.

Schlei­fen­durch­läu­fe von R-For-Loops über­sprin­gen – das Schlüs­sel­wort „next“

In manchen An­wen­dungs­fäl­len kann es hilfreich sein, bestimmte Schlei­fen­durch­läu­fe zu über­sprin­gen, anstatt direkt die gesamte Aus­füh­rung der For-Loop zu stoppen. Auch hierfür hält die Pro­gram­mier­spra­che R mit „next“ ein passendes Schlüs­sel­wort bereit:

cars <- list("limousine", "cabrio", "suv", "supersport", "oldtimer")
for (x in cars) {
	if (x == "suv") {
		next
}
print(x)
}

Das Code­bei­spiel von weiter oben wurde nun so mo­di­fi­ziert, dass alle Autotypen aus der Liste außer des SUVs aus­ge­ge­ben werden sollen. Auch hierfür wird eine If-Bedingung ein­ge­setzt, die überprüft, ob es sich bei dem aktuellen Lis­ten­ele­ment um den SUV handelt. Wenn dies der Fall ist, werden die rest­li­chen An­wei­sun­gen des Schlei­fen­rumpfs über­sprun­gen und die Aus­füh­rung der R-For-Loop wird fort­ge­setzt.

Zum Hauptmenü