Namen durchlaufen
Teil des Abschnitts Logik und Ablaufsteuerung der R-Journey von Coddy. Lektion 10 von 64.
Eine for-Schleife über names(x) besucht jeden Schlüssel, und x[[key]] liefert den Wert für diesen Schlüssel:
scores <- c(ada = 91, bo = 78, cy = 85)
for (name in names(scores)) {
cat(name, "scored", scores[[name]], "\n")
}Ausgabe:
ada scored 91
bo scored 78
cy scored 85 Einträge behalten die Reihenfolge bei, in der sie hinzugefügt wurden. Durchlaufe sort(names(x)) für alphabetische Reihenfolge:
scores <- c(cy = 85, ada = 91, bo = 78)
for (name in sort(names(scores))) {
cat(name, scores[[name]], "\n")
}Ausgabe:
ada 91
bo 78
cy 85 Das Durchlaufen der Eingabe und Aktualisieren einer Nachschlagetabelle zählt, wie oft jeder Wert vorkommt. Beim ersten Auftreten eines Wortes erhält es den Wert 1, danach wird dieser jeweils um 1 erhöht:
words <- c("red", "blue", "red", "green", "red")
counts <- c()
for (w in words) {
if (w %in% names(counts)) {
counts[w] <- counts[w] + 1
} else {
counts[w] <- 1
}
}
print(counts[["red"]])
print(names(counts))Ausgabe:
[1] 3
[1] "red" "blue" "green"Um Ausgabezeilen zu erstellen, sammle sie innerhalb der Schleife in einem Vektor und gib sie am Ende zurück oder drucke sie aus:
scores <- c(ada = 91, bo = 78)
lines <- c()
for (name in names(scores)) {
lines <- c(lines, paste0(name, ": ", scores[[name]]))
}
cat(lines, sep = "\n")Ausgabe:
ada: 91
bo: 78Aufgabe
EinfachVervollständige word_counts(words). Gib für jedes unterschiedliche Wort eine Zeile in alphabetischer Reihenfolge zurück, formatiert als word: count.
Der bereitgestellte Code liest die Wörter als eine durch Leerzeichen getrennte Zeile ein und gibt jede zurückgegebene Zeile aus.
Probier es selbst
word_counts <- function(words) {
# Schreibe deinen Code hier
character(0)
}
# Bereitgestellter Ein-/Ausgabecode: belasse ihn wie er ist
input <- suppressWarnings(readLines(file("stdin")))
cat(word_counts(strsplit(input[1], " ")[[1]]), sep = "\n")
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik und Ablaufsteuerung
1Strings im Detail
Teilstrings mit substr()Formatierung mit sprintf()Aufteilen und VerbindenStrings durchsuchenText ersetzenWiederholung – Benutzernamen-Generator4Matrizen
Matrizen erstellenMatrizen indizierenZusammenfassungen von Zeilen und SpaltenMatrizenarithmetikRückblick – Sitzplan10Fortgeschrittener Kontrollfluss
Die switch()-FunktionVektorisierter ifelse()repeat und breakRekursive FunktionenRückblick – Notenklassifizierung2Schlüssel-Wert-Suchen
Benannte Vektor-SuchenSchlüssel prüfenSchlüssel hinzufügen und entfernenNamen durchlaufenRückblick – Aktienübersicht5Projekt – Notenbuch
Schüler hinzufügenNoten eintragen3Mengen und Zählen
Eindeutige WerteMengenoperationenZugehörigkeitstestsZählen mit table()Rückblick – Gäste einer Veranstaltung6Funktionen als Werte
Anonyme FunktionenFunktionen übergebenFunktionen zurückgebenClosures mit ZustandRückblick – Rabattregeln9Datenrahmen
Datenrahmen erstellenSpalten und ZeilenZeilen filternHinzufügen und SortierenZusammenfassung – Verkaufsbericht12Projekt – Ausgaben-Tracker
Ausgaben erfassenGesamtausgabenÜbe selbstständig: Online-R-Compiler