cbind sparse.model.matrix with data.table - PullRequest
       54

cbind sparse.model.matrix with data.table

0 голосов
/ 22 января 2020

Я использую sparse.model.matrix в Matrix для преобразования фактора в фиктивные переменные,

library(data.table)
d <- data.table(x=as.factor(c(1,1,2,2,3,3)))

m <- sparse.model.matrix(~x-1, data=d)
> m
6 x 3 sparse Matrix of class "dgCMatrix"
  x1 x2 x3
1  1  .  .
2  1  .  .
3  .  1  .
4  .  1  .
5  .  .  1
6  .  .  1

, который я бы затем хотел cbind с исходными данными. Поскольку матрица модели является разреженной, это не так легко работает, как с model.matrix.

> d2 <- cbind(d,m)
> d2
Error in FUN(X[[i]], ...) : 
  Invalid column: it has dimensions. Can't format it. If it's the result of data.table(table()), use as.data.table(table()) instead.

Я нашел здесь решение для rbind, которое называется rBind.fill из Matrix.utils. Интересно, есть ли подобное (или даже лучше: в базе r или в data.table) решение для cbind.

...