Membaca chunk sebagai data.frame
Pada contoh sebelumnya, kita membaca setiap chunk ke dalam fungsi pemrosesan sebagai matriks menggunakan mstrsplit(). Ini baik-baik saja saat kita membaca data berbentuk persegi panjang di mana tipe elemen pada setiap kolom sama. Jika tidak, kita mungkin ingin membaca data sebagai data.frame. Hal ini dapat dilakukan dengan membaca chunk sebagai matriks lalu mengonversinya menjadi data.frame, atau Anda dapat menggunakan fungsi dstrsplit().
Latihan ini adalah bagian dari kursus
Pemrosesan Data yang Dapat Diskalakan di R
Petunjuk latihan
- Dalam fungsi
make_msa_table(), bacalah setiap chunk sebagai data frame. - Panggil
chunk.apply()untuk membaca data dalam bentuk chunk. - Dapatkan total hitungan untuk setiap kolom dengan menjumlahkan semua baris.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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
___