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
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
___