НачатьНачать бесплатно

Чтение фрагментов в виде data.frame

В предыдущем примере каждый фрагмент передавался в функцию обработки в виде матрицы с помощью mstrsplit(). Это удобно, когда данные имеют прямоугольную структуру и все элементы в каждом столбце относятся к одному типу. Если типы различаются, удобнее читать данные в виде data.frame. Это можно сделать двумя способами: сначала считать фрагмент как матрицу и затем преобразовать её в data.frame, либо сразу воспользоваться функцией dstrsplit().

Это упражнение является частью курса

Масштабируемая обработка данных в R

Посмотреть курс

Инструкции к упражнению

  • В функции make_msa_table() считайте каждый фрагмент в виде фрейма данных.
  • Вызовите chunk.apply(), чтобы читать данные по фрагментам.
  • Получите суммарные значения по каждому столбцу, сложив все строки.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# 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
___
Редактировать и запускать код