'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))