LoslegenKostenlos loslegen

Chunks als data.frame einlesen

Im vorherigen Beispiel haben wir jeden Chunk mit mstrsplit() als Matrix in die Verarbeitungsfunktion eingelesen. Das ist sinnvoll, wenn wir rechteckige Daten lesen, bei denen der Typ der Elemente in jeder Spalte gleich ist. Wenn das nicht der Fall ist, möchten wir die Daten vielleicht als data.frame einlesen. Das geht entweder, indem du einen Chunk als Matrix liest und dann in einen Data Frame umwandelst, oder du verwendest die Funktion dstrsplit().

Diese Übung ist Teil des Kurses

Skalierbare Datenverarbeitung in R

Kurs anzeigen

Anleitung zur Übung

  • Lies in der Funktion make_msa_table() jeden Chunk als Data Frame ein.
  • Rufe chunk.apply() auf, um die Daten chunkweise einzulesen.
  • Ermittle die Gesamtsummen für jede Spalte, indem du alle Zeilen addierst.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Define the function to apply to each chunk
make_msa_table <- function(chunk) {
    # Read each chunk as a data frame
    x <- ___(chunk, col_types = rep("integer", length(col_names)), sep = ",")
    # Set the column names of the data frame that's been read
    colnames(x) <- col_names
    # Create new column, msa_pretty, with a string description of where the borrower lives
    x$msa_pretty <- msa_map[x$msa + 1]
    # Create a table from the msa_pretty column
    table(x$msa_pretty)
}

# Create a file connection to mortgage-sample.csv
fc <- file("mortgage-sample.csv", "rb")

# Read the first line to get rid of the header
readLines(fc, n = 1)

# Read the data in chunks
counts <- ___(fc, ___, CH.MAX.SIZE = 1e5)

# Close the file connection
close(fc)

# Aggregate the counts as before
___
Code bearbeiten und ausführen