sparse.model.matrix创建出错

时间:2017-10-23 12:49:36

标签: r matrix sparse-matrix

我尝试使用公式创建sparse.model.matrix(来自Matrix包),其中两个因素之间存在交互。如果我的输入数据有多行,这很好,但只要我只有一行,我就会得到错误:

Error in model.spmatrix(t, data, transpose = transpose, drop.unused.levels = drop.unused.levels, : cannot get a slot ("Dim") from an object of type "double"

例如:这不起作用:

f<-(mpg~as.factor(cyl)*as.factor(hp))

y<-mtcars
y$cyl<-as.factor(y$cyl)
y$hp<-as.factor(y$hp)

x<-y[1,]

myMatrix<-Matrix::sparse.model.matrix(f,x)

但是,在两行中重复x会导致错误消失:

x<-rbind(x,x)
myMatrix<-Matrix::sparse.model.matrix(f,x)

我已将错误追溯到

Matrix:::Csparse_vertcat中的{p> Matrix:::Csparse_horzcat / Matrix:::model.spmatrix但我无法弄清楚用C编写的这个函数正在尝试做什么。有任何想法吗?请注意,就我可以确定,只有在处理两个因素之间的交互的矩阵创建时才会出现此错误。

0 个答案:

没有答案