'x'和'w'必须具有相同的长度 - weighted.mean.default中的错误

时间:2014-01-10 20:09:22

标签: r glmnet

我在使用R中的包glmnet时遇到问题。我正在尝试使用它现成的,并且遇到以下问题:

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

weighted.mean.default(y,权重)出错:         'x'和'w'必须具有相同的长度

但输入大小相同:

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

导致此错误的原因是什么?

2 个答案:

答案 0 :(得分:2)

我有同样的问题,但发现解决方案是X和y都应该是矩阵。我在没有as.matrix函数的情况下运行下面的代码并得到相同的错误。然后我尝试了这个并且它有效。另请参阅this tutorial中的示例,加载应该包中的数据,您将看到第一个示例中的x和y都是矩阵。

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

fit <- glmnet(X, y)

答案 1 :(得分:0)

glmnet(x,y)的上下文中,变量y应该是一个向量。

在您的示例中,您可以使用以下方法实现此目的:

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