Я пытаюсь втиснуть недостающие данные генотипа с помощью мыши из пакета R. Первый набор данных, который у меня есть, состоит из матрицы генотипов размером 1851x47992, состоящей из 0, 1 и 2 и NA (большинство записей - 0), и вектора фенотипа из 0 и 1 длиной 1851. Поскольку генотипы состоят из 3 дискретных категории, я решил использовать метод polyreg.
Вот код, который я использовал, чтобы попытаться начать вменение (отсутствующие данные сохраняются в файле как -1; мне пришлось изменить их на NA):
genotype <- as.matrix(read.table('genotype file address'))
phenotype <- unlist(read.table('phenotype file address'))
data3 <- data.frame(genotype,phenotype)
data3[data3==-1] <- NA
library(mice)
imp <- mice(data3,method="polyreg")
К сожалению, я получаю сообщение об ошибке «невозможно выделить вектор размером 17,2 ГБ», даже если файл генотипа составляет всего 169 МБ, а файл фенотипа - только 5,42 КБ
Я собирался спросить о самой ошибке; но я нашел несколько вопросов, уже объясняющих, что это означает, что в памяти недостаточно места для хранения вычислений. Поэтому вместо этого я хотел бы спросить: 1) Зачем этому мышам-полирегам требуется на 2 порядка больше памяти, чем размер базовых данных, 2) Могу ли я воспользоваться тем, что большинство записей в генотипе равно 0 чтобы уменьшить это?
Спасибо