rep() für wiederholte Werte
Wiederholen Sie Werte und Vektoren mit rep(), times und each als Argumenten.
rep() für wiederholte Werte ist eine kostenlose R Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des R Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der R Academy-Kurs umfasst insgesamt 4 Lektionen.
Einführung in <code>rep()</code>
rep() steht für replicate. Die Funktion wiederholt Werte oder Vektoren eine festgelegte Anzahl von Malen. Sie gehört zu den nützlichsten Werkzeugen zum Erstellen strukturierter Testdaten und ausgewogener Datensätze sowie zum Auffüllen von Vektoren mit Standardwerten.
# Repeat a single value
zeros <- rep(0, times = 5)
cat('Five zeros:', zeros, '
')
# Repeat a string
status <- rep('active', times = 4)
cat('Status:', status, '
')<code>rep(x, times)</code> — gesamten Vektor wiederholen
Wenn x ein Vektor und times eine einzelne Ganzzahl ist, wiederholt rep() den gesamten Vektor so oft. Die Länge der Ausgabe ist length(x) * times.
# Repeat a vector 3 times
weekend <- c('Saturday', 'Sunday')
four_weekends <- rep(weekend, times = 4)
cat('4 weekends:', four_weekends, '
')
# Repeat numeric vector
pattern <- c(1, 2, 3)
cat('Pattern x3:', rep(pattern, times = 3), '
')<code>rep(x, each)</code> — jedes Element wiederholen
Das Argument each wiederholt jedes einzelne Element, bevor mit dem nächsten fortgefahren wird. Dies ist der entscheidende Unterschied zu times: each wiederholt die Elemente direkt an ihrer jeweiligen Position.
groups <- c('A', 'B', 'C')
# times: repeats whole vector
cat('times=3:', rep(groups, times = 3), '
')
# A B C A B C A B C
# each: repeats each element before next
cat('each=3 :', rep(groups, each = 3), '
')
# A A A B B B C C C<code>rep(x, times = c(...))</code> — variable Wiederholungen
Wenn times ein Vektor mit derselben Länge wie x ist, wird jedes Element von x so oft wiederholt, wie es die entsprechende Anzahl vorgibt. Dadurch lässt sich die Wiederholung sehr genau steuern.
# Different number of repeats per element
fruits <- c('apple', 'banana', 'cherry')
counts <- c(3, 1, 2)
fruit_basket <- rep(fruits, times = counts)
cat('Fruit basket:', fruit_basket, '
')
# apple apple apple banana cherry cherry
# Useful for creating category labels
cat('Length:', length(fruit_basket), '
')<code>rep_len()</code> — auf eine feste Länge wiederholen
rep_len(x, length.out) wiederholt den Vektor x, bis das Ergebnis genau length.out Elemente enthält. Die Wiederholung erfolgt zyklisch – bei Bedarf beginnt sie wieder am Anfang des Vektors.
# Cycle through seasons to fill 12 months
seasons <- c('Spring', 'Summer', 'Autumn', 'Winter')
year_seasons <- rep_len(seasons, length.out = 12)
cat('12 months by season:', year_seasons, '
')
# Cycle through 1, 2, 3 for 10 items
rotation <- rep_len(1:3, length.out = 10)
cat('Rotation:', rotation, '
')<code>times</code> und <code>each</code> kombinieren
Sie können times und each gemeinsam verwenden, um komplexere Wiederholungsmuster zu erstellen. R wendet zuerst each an (und erweitert jedes Element) und wiederholt anschließend den resultierenden Vektor times-mal.
# each=2 then times=3
vals <- c(1, 2)
result <- rep(vals, each = 2, times = 3)
cat('each=2, times=3:', result, '
')
# 1 1 2 2 repeated 3 times: 1 1 2 2 1 1 2 2 1 1 2 2
cat('Length:', length(result), '
')Ausgewogene Gruppenbezeichnungen erstellen
Eine klassische Verwendung von rep() ist das Erstellen ausgewogener Gruppenbezeichnungen für Experimente – also dann, wenn jede Gruppe gleich viele Beobachtungen enthalten soll.
# 5 subjects per treatment group
treatments <- c('Control', 'LowDose', 'HighDose')
n_per_group <- 5
group_labels <- rep(treatments, each = n_per_group)
cat('Group labels:', group_labels, '
')
cat('Total subjects:', length(group_labels), '
')
# Count per group
for (g in treatments) {
cat(g, ':', sum(group_labels == g), '
')
}Logische Werte wiederholen
rep() funktioniert mit jedem Datentyp, auch mit logischen Werten. Das ist nützlich, um Masken, Flags oder abwechselnde TRUE/FALSE-Muster zu erstellen.
# Alternating TRUE/FALSE pattern
alternate <- rep(c(TRUE, FALSE), times = 5)
cat('Alternating mask:', alternate, '
')
# Apply mask to select every other element
data_vals <- 10:19
cat('Every other value:', data_vals[alternate], '
')
# Create a block pattern: 3 TRUE then 3 FALSE
block <- rep(c(TRUE, FALSE), each = 3)
cat('Block pattern:', block, '
')<code>rep()</code> zum Füllen von Matrizen
Mit rep() können Sie Matrizen schnell mit Daten nach einem bestimmten Muster füllen. Da matrix() einen Vektor als Eingabe akzeptiert, lassen sich durch die Kombination mit rep() einfach Mustermatrizen erstellen.
# Fill a 3x4 matrix with a repeating pattern
pattern <- rep(c(1, 0), times = 6)
checker <- matrix(pattern, nrow = 3, ncol = 4)
cat('Checkerboard-like matrix:
')
print(checker)
# Fill diagonal-like with rep
fill <- rep(1:4, each = 3)
cat('Repeated fill:', fill, '
')Eine Übersichtstabelle erweitern
Eine praktische Verwendung von rep() mit variablem times ist die Umwandlung einer Häufigkeitstabelle zurück in einen Rohdatenvektor. Wenn Sie wissen, wie oft jeder Wert vorkam, rekonstruiert rep() die Beobachtungen.
# Summary: grade frequencies
grades <- c('A', 'B', 'C', 'D')
frequencies <- c(5, 12, 8, 3)
# Reconstruct raw grade vector
raw_grades <- rep(grades, times = frequencies)
cat('Raw grades (', length(raw_grades), 'students):', raw_grades, '
')
# Verify frequency table
cat('Freq table:
')
print(table(raw_grades))Zusammenfassung von <code>rep()</code>
Hier finden Sie eine kurze Übersicht über rep():
rep(x, times = n)— wiederholt den gesamten Vektor x n-malrep(x, each = n)— wiederholt jedes Element n-malrep(x, times = c(...))— variable Wiederholungsanzahl pro Elementrep_len(x, n)— wiederholt x zyklisch, bis genau n Elemente erreicht sind- Funktioniert mit jedem Typ: numerisch, Zeichenkette, logisch, Faktor
x <- c(10, 20, 30)
cat('times=2 :', rep(x, times = 2), '
')
cat('each=2 :', rep(x, each = 2), '
')
cat('var times:', rep(x, times = c(1, 2, 3)), '
')
cat('rep_len :', rep_len(x, 7), '
')Kurzer Test
Was erzeugt rep(c(1, 2), each = 3)?
Rückblick: <code>rep()</code> zum Wiederholen von Werten
Hervorragend! Die wichtigsten Erkenntnisse aus dieser Lektion:
rep(x, times)wiederholt den gesamten Vektor;rep(x, each)wiederholt jedes Element einzeln- Wenn Sie einen Vektor an
timesübergeben, erhalten die einzelnen Elemente unterschiedliche Wiederholungsanzahlen rep_len(x, n)wiederholt x zyklisch, bis genau n Elemente erzeugt wurden- Typische Anwendungen: ausgewogene Gruppenbezeichnungen, Masken, Erweiterung von Häufigkeitstabellen, Mustermatrizen
- Funktioniert gleichermaßen mit numerischen, Zeichenketten- und logischen Datentypen
# Create a balanced experiment design
treatments <- c('Placebo', 'Drug_A', 'Drug_B')
subjects_per <- 4
design <- rep(treatments, each = subjects_per)
cat('Experiment design:
')
cat(design, '
')
cat('Total N:', length(design), '
')Häufig gestellte Fragen
Ist die Lektion „rep() für wiederholte Werte“ kostenlos?
Ja — der vollständige Text von „rep() für wiederholte Werte“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des R Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der R Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „rep() für wiederholte Werte“?
Wiederholen Sie Werte und Vektoren mit rep(), times und each als Argumenten. Du übst R Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um R Academy zu starten?
Keine Vorkenntnisse erforderlich. R Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „rep() für wiederholte Werte“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser R Academy-Lektion Code schreiben und ausführen?
Ja. Jede R Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Der Doppelpunktoperator für Ganzzahlbereiche
- seq() für benutzerdefinierte Sequenzen
- rep() für wiederholte Werte
- Benannte Vektoren und Sequenzen