rep() in R: Dekodierung der Replikationsfunktion
Veröffentlicht: 2020-06-15Bevor wir in R über rep sprechen , müssen wir wissen, was Iteration ist. Der Begriff Iteration bedeutet Wiederholung. Wie in den meisten anderen Programmiersprachen ist das traditionelle Schleifen oder Iterieren ein Kernaspekt von R.
Regelmäßige Schleifen sind zwar ein effizienter Ansatz für die Datenverwaltung, sie sind jedoch nur aus dem Grund kostspielig, dass die Iteration speicher- und zeitaufwändig ist. Eine gute Alternative ist die Verwendung vektorisierter Methoden, die die gleichen Ziele erreichen können wie die Iteration; Die Funktion rep() ist ein Mitglied einer solchen vektorisierten Schleifenfunktion.
Inhaltsverzeichnis
Was ist die Funktion rep()?
Einfach ausgedrückt repliziert rep in R oder die Funktion rep() numerische Werte oder Text oder die Werte eines Vektors für eine bestimmte Anzahl von Malen. Die rep()-Funktion ist ein Mitglied der apply()-Funktionsfamilie des R-Basispakets. Die Familie apply() enthält Funktionen zum wiederholten Bearbeiten von Daten aus Arrays, Matrizen, Datenrahmen und Listen.
Die apply()-Funktionen umgehen die Verwendung von Schleifenkonstrukten, um auf Arrays, Matrizen oder Eingabelisten einzuwirken, und wenden eine benannte Funktion mit optionalen Argumenten an. Die aufgerufene Funktion kann eine Aggregatfunktion, eine Transformationsfunktion oder vektorisierte Funktionen wie Arrays, Vektoren, Listen und Matrizen sein. Sehen Sie sich unsere Data-Science-Kurse an, um mehr über Funktionen zu erfahren.
Lesen Sie mehr: Datenrahmen in Python: Ausführliches Python-Tutorial
Vektorisierte Berechnungen versus Iterationen
Anstatt einzelne Elemente einer Sequenz zu bearbeiten, bearbeiten vektorisierte Verfahren alle Vektorkomponenten gleichzeitig. Daher liefern vektorisierte Berechnungen immer schnellere Ergebnisse.
Um die Geschwindigkeit vektorisierter Berechnungen zu veranschaulichen, verwenden wir ein Beispiel, das die Zeit ermittelt, die eine for()-Schleife für die Erzeugung eines großen Vektors verstreicht. Im Beispiel wird jedes Element sequentiell als inkrementelle kumulative Summe von 1 bis N berechnet (wobei N = 10.000.000). Durch Geschwindigkeitstests wird ein Vergleich zwischen der Iteration der for()-Schleife und der vektorisierten Funktion gezogen.
Quelle
Beim Vergleich der Ergebnisse der Geschwindigkeitstests wird deutlich, dass die verstrichene Zeit für die vektorisierte Berechnung (Geschwindigkeitstest 2) deutlich schneller ist als die for()-Schleife. In der Zeit, die für einen Durchlauf der Iterationsschleife benötigt wird, kann die vektorisierte Berechnung 278 Mal wiederholt werden.
Repeat- versus Replicate-Funktion
Die Repeat-Funktion oder -Schleife in R wird verwendet, wenn wir denselben Codeblock wiederholt ausführen möchten, bis eine bestimmte Bedingung erfüllt ist. Es ist den for- und while-Schleifen sehr ähnlich, die einen Befehlsblock wiederholt bis zum Break ausführen. Die grundlegende Syntax zum Erstellen einer Wiederholungsschleife lautet:
wiederholen {
wenn (Bedingung) {
brechen
}
}
Das folgende Beispiel soll die Verwendung der Repeat-Funktion verdeutlichen:
Im obigen Beispiel summiert die Wiederholungsschleife den Wert, bis er 6 erreicht. Sobald die Schleife 6 erreicht hat, wird die Schleife unterbrochen, indem „Wiederholungsschleife endet“ ausgegeben wird.
Andererseits wird die Replikationsfunktion oder Rep in R zum Replizieren von Werten verwendet. Die grundlegende R-Syntax für die Verwendung der Funktion rep() lautet:
- rep(Wert,Anzahl_von_Zeiten)
- rep(sequence,each,number_of_times)
Hier sind einige Beispiele zum Verständnis der Funktion rep():
Beispiel: Verwenden der Funktion rep() zum Replizieren von Werten für eine bestimmte Anzahl von Malen
Im obigen Beispiel wird der Wert 2 zehnmal repliziert.

Beispiel: Verwenden der Funktion rep() mit einem Längenattribut
Im obigen Beispiel werden 1 bis 4 nacheinander gedruckt, bis die Anzahl der Elemente 20 erreicht.
Beispiel: Verwenden der Funktion rep() zum Replizieren einer Liste
Im obigen Beispiel wurde die Bewertungsliste von 1 bis 5 dreimal repliziert.
Quelle
Verwenden der Funktion rep () zum Erweitern eines Vektors
Die Funktion rep() ist eine flexible Möglichkeit, einen Vektor zu wiederholen. Hier sind einige weitere Beispiele:
Falls wir einen statistischen Vektor von experimentellen/beobachtenden Einheiten in einen Vektor eines Datenrahmens mit wiederholten Beobachtungen der Einheiten erweitern müssen, ist jedes Argument sehr praktisch. Beispiel:
Eine weitere Funktion von rep() besteht darin, dass ein Vektor zu einem unausgeglichenen Panel erweitert werden kann, indem das Längenargument durch einen Vektor ersetzt wird, der angibt, wie oft sich jedes Element im Vektor wiederholt. Beispiel:
Zu den einfacheren und schnelleren Versionen der rep-Funktion gehören rep_len() und rep.int(). Diese neueren Versionen kommen ohne einige der Attribute von rep() aus, erweisen sich aber als nützlich in Fällen, in denen die Geschwindigkeit von grundlegender Bedeutung ist und zusätzliche Aspekte des wiederholten Vektors unerwünscht sind.
Quelle
Lesen Sie: 6 interessante R-Projektideen für Anfänger
Fazit
In diesem Artikel haben wir die Funktionen „Repeat“ und „Replicate“ anhand geeigneter Beispiele besprochen. Während herkömmliche Iterationen für die wiederholte Ausführung von Codeblöcken nützlich sind, ist der rep in R ideal, um die Werte eines Vektors oder einer Liste zu replizieren. Effizient und zeitsparend, die Funktion rep() hat die Vektorreplikation vereinfacht!
Wenn Sie mehr über R und Data Science erfahren möchten, schauen Sie sich das Executive PG Program in Data Science von IIIT-B & upGrad an, das für Berufstätige entwickelt wurde und mehr als 10 Fallstudien und Projekte, praktische Workshops und Mentoring mit Branchenexperten bietet , 1-on-1 mit Mentoren aus der Branche, über 400 Stunden Lern- und Jobunterstützung bei Top-Unternehmen.
Wie kann ich einen Vektor mit wiederholten Werten in R erstellen?
Die Funktion rep() in R kann verwendet werden, um eine Reihe von ganzen Zahlen zu wiederholen. In R gibt es zwei Techniken zum Erstellen eines Vektors mit wiederholten Werten; Die erste Methode wiederholt jedes Element im Vektor, während die zweite Methode die Elemente mit einer bestimmten Anzahl von Malen wiederholt. Die Vektoren werden bei jedem dieser Ansätze unter Verwendung der rep-Funktion erstellt. Beispiel: rep(1:5, times=5) ergibt einen Vektor mit der Sequenz 1 bis 5, die fünfmal wiederholt wird.
Welche Funktion ist schneller - Replicate oder For Loop?
In der Programmiersprache R ist die For-Schleifenfunktion schneller als die Replikationsfunktion. Eine for-Schleife ist eine Technik, um eine Liste von Werten in verschiedenen Programmiersprachen zu durchlaufen, indem Code für jeden Wert in der Liste ausgeführt wird. rep() ist eine vektorisierte Schleifenfunktion, deren einziger Zweck darin besteht, ohne Speicherverschwendung zu laufen. Wenn Sie einen Teil eines vorhandenen Datenrahmens ändern müssen, ist eine For-Schleife normalerweise die beste Option.
Wie kann ich R-Codes beschleunigen?
Einige Methoden zur Beschleunigung von R-Codes sind unten aufgeführt:-
1. Bevor Sie Ihre Datenstrukturen und Ausgangsvariablen für Berechnungen in eine Schleife stecken, vergewissern Sie sich, dass sie die richtige Länge und den richtigen Datentyp haben. Versuchen Sie innerhalb der Schleife, die Datenmenge nicht progressiv zu erweitern.
2. Verwenden Sie nach Möglichkeit eine Matrix anstelle eines Datenrahmens, da Datenrahmen in vielen Situationen Probleme verursachen können. Verwenden Sie daher Datenrahmen nur, wenn es absolut notwendig ist.
3. Verwenden Sie nach Möglichkeit Vektor- und Matrixoperationen.
4. Ändern Sie in R nicht den Typ oder die Größe eines Objekts. Das Ändern des Typs und der Größe eines R-Objekts führt dazu, dass Speicherplatz neu zugewiesen wird, was standardmäßig nicht ausreicht.