R: как эффективно преобразовывать данные из data.table() в матрицу (скорость и память)

У меня есть данные размером ~ 20 000 x 20 000, как можно эффективно конвертировать из data.table() в matrix с точки зрения скорости и памяти?

Я пробовал m = as.matrix(dt), но для многих предупреждений требуется очень много времени. df = data.frame(dt) занимает очень много времени и приводит к достижению пределов памяти.

Есть ли эффективный способ сделать это? Или просто функция в data.table, которая возвращает dt как матричную форму (как требуется для подачи в статистическую модель с помощью пакета glmnet)?

Ответы

Ответ 1

Try:

    result <- as.matrix(tidytext::cast_sparse(dat_table,
    column_name_of_rows,
    column_name_of_columns,
    column_name_of_values))

Он должен быть очень эффективным и быстрым.