Datenrahmen erstellen
Teil des Abschnitts Logik und Ablaufsteuerung der R-Journey von Coddy. Lektion 42 von 64.
Ein data frame ist die Tabelle von R: Jede Spalte ist ein Vektor mit ihrem eigenen Typ, und alle Spalten haben dieselbe Länge, mit einem Wert pro Zeile. data.frame() erstellt einen aus benannten Vektoren:
people <- data.frame(
name = c("ada", "bo", "cy"),
age = c(36, 22, 41),
city = c("london", "paris", "rome")
)
print(people)Ausgabe:
name age city
1 ada 36 london
2 bo 22 paris
3 cy 41 romenrow() und ncol() geben die Größe an, und names() listet die Spalten auf. Im Gegensatz zu einer Matrix können die Spalten unterschiedliche Typen enthalten: hier Text und Zahlen.
people <- data.frame(
name = c("ada", "bo", "cy"),
age = c(36, 22, 41),
city = c("london", "paris", "rome")
)
print(nrow(people))
print(ncol(people))
print(names(people))Ausgabe:
[1] 3
[1] 3
[1] "name" "age" "city"str() zeigt den Typ und die ersten Werte jeder Spalte an – eine schnelle Möglichkeit zu prüfen, welche Daten ein Data Frame enthält:
people <- data.frame(
name = c("ada", "bo", "cy"),
age = c(36, 22, 41),
city = c("london", "paris", "rome")
)
str(people)Ausgabe:
'data.frame': 3 obs. of 3 variables:
$ name: chr "ada" "bo" "cy"
$ age : num 36 22 41
$ city: chr "london" "paris" "rome"Daten liegen oft als Text vor, mit einer Zeile pro Datensatz. read.csv(text = lines) wandelt solche Zeilen in einen Data Frame um, wobei die erste Zeile als Spaltennamen verwendet und Zahlen automatisch konvertiert werden:
lines <- c("item,qty", "tea,2", "jam,5")
orders <- read.csv(text = lines)
print(orders)
print(sum(orders$qty))Ausgabe:
item qty
1 tea 2
2 jam 5
[1] 7Aufgabe
EinfachVervollständige table_info(names, ages). Erstelle einen Dataframe mit den Spalten name und age aus den beiden Vektoren. Gib drei Zeilen zurück: Rows: mit der Anzahl der Zeilen, Columns: mit den durch , verbundenen Spaltennamen und Oldest: mit dem Namen in der Zeile mit dem höchsten Alter (bei gleichen Alterswerten der erste).
Der bereitgestellte Code liest die Namen und die Altersangaben als zwei durch Kommas getrennte Zeilen ein und gibt jede zurückgegebene Zeile aus.
Probier es selbst
table_info <- function(names, ages) {
# Schreibe deinen Code hier
character(0)
}
# Bereitgestellter Ein-/Ausgabecode: belasse ihn wie er ist
input <- suppressWarnings(readLines(file("stdin")))
cat(table_info(strsplit(input[1], ",")[[1]], as.numeric(strsplit(input[2], ",")[[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