'x' и 'w' должны иметь такую ​​же длину - ошибка в weighted.mean.default

У меня проблема с пакетом glmnet в R. Я пытаюсь использовать его в готовом виде, и у меня возникает следующая проблема:

test <- glmnet(seq.trans,rsem.trans)

Ошибка в weighted.mean.default(y, weight):       'x' и 'w' должны иметь одинаковую длину

Но входы имеют одинаковый размер:

dim(seq.trans)
# [1]    28 17763
dim(rsem.trans)
# [1]    28 17763

Что вызывает эту ошибку?

Ответ 1

У меня была та же проблема, но я нашел решение, что и X, и y должны быть матрицами. Я использовал код ниже без функции as.matrix и получал ту же ошибку. Тогда я попробовал это, и это сработало. Также посмотрите пример в этот учебник, загрузив данные, которые должны войти в пакет, и вы увидите, что и x и y в Первый пример - это две матрицы.

library(glmnet)
library(dplyr)
X <- as.matrix(select(mtcars, -mpg))
y <- as.matrix(select(mtcars, mpg))

fit <- glmnet(X, y)

Ответ 2

В контексте glmnet(x,y) переменная y должна быть вектором.

В вашем примере вы можете достичь этого, используя:

glmnet(seq.trans, as.vector(rsem.trans))