sparse.model.matrix在R中丢失行

Mar*_*ski 14 r matrix sparse-matrix

我正在研究data.frame看起来很有用的glm功能,所以我决定我会对模型矩阵的稀疏重复进行处理,这样我就可以把这个稀疏矩阵放到glmnet函数中了.但sparse.model.matrix看起来要从原始矩阵中删除一些行.知道为什么会这样,以及任何解决方案如何避免这种情况?代码如下:

> mm <- sparse.model.matrix(~clicks01+kl_tomek*bc1+hours+plec+1, 
data = daneOst)
> dim(mm)
[1] 1253223     292
> dim(daneOst)
[1] 1258836       6
Run Code Online (Sandbox Code Playgroud)

Bar*_*Bar 14

我在改变na.actionto方面取得了一些成功na.pass,包括我矩阵中的所有行:

options(na.action='na.pass')
Run Code Online (Sandbox Code Playgroud)

请注意,这是一个全局选项,因此您可能希望将其设置回原始值之后,以免弄乱其余代码.

previous_na_action <- options('na.action')
options(na.action='na.pass')
# Do your stuff...

options(na.action=previous_na_action$na.action)
Run Code Online (Sandbox Code Playgroud)

这个答案解决.


Wil*_*emM 8

这是由于NA的!

sum(complete.cases(mm)).我打赌它也给你1253223.

因此,用数值替换数据框中的NA(例如'IMPUTED_NA'或-99999),然后再试一次.