Я знаю, что этот вопрос задавался в прошлом (например, здесь и здесь ), но этим вопросам уже много лет, и они не решены.Мне интересно, если какие-либо решения были созданы с тех пор.Проблема в том, что пакет Matrix в R не может обрабатывать длинные векторы (длина которых больше 2 ^ 31 - 1).В моем случае для запуска модели XGBoost необходима разреженная матрица из-за ограничений по памяти и времени.XGBoost xgb.DMatrix
поддерживает использование объекта dgCMatrix
.Однако из-за размера моих данных попытка создать разреженную матрицу приводит к ошибке.Вот пример проблемы.(Предупреждение: используется 50-60 ГБ ОЗУ.)
i <- rep(1, 2^31)
j <- i
j[(2^30): length(j)] <- 2
x <- i
s <- sparseMatrix(i = i, j = j, x = x)
Ошибка в validityMethod (as (object, superClass)): длинные векторы еще не поддерживаются: ../../src/include / Rinlinedfuns.h: 137
По состоянию на 2019 год есть ли какие-либо решения этой проблемы?
Я использую последнюю версию пакета Matrix
, 1.2-15.