我正在尝试在我们的数据集上运行LASSO,为此,我需要将非数字变量转换为数字,最好是通过稀疏矩阵。但是,当我尝试使用Matrix命令时,出现了相同的错误:

Error in asMethod(object) : invalid class 'NA' to dup_mMatrix_as_geMatrix

我以为这是由于我的数据中不存在NA,所以我做了一个na.omit并得到了同样的错误。我再次尝试使用代码的一个迷你子集,并再次遇到相同的错误:
> sparsecombined <- Matrix(combined1[1:10,],sparse=TRUE)
Error in asMethod(object) : invalid class 'NA' to dup_mMatrix_as_geMatrix

这是我尝试使用最后一行代码转换的数据集:

r - 在R中将Matrix转换为稀疏的罕见错误消息-LMLPHP

有什么可能阻止稀疏转换的东西跳出来吗?

最佳答案

将分类变量合并到LASSO中的最简单方法是使用我的glmnetUtils package,它为glmnet提供公式/数据框架接口(interface)。

glmnet(ArrDelay ~ ArrTime + uniqueCarrier + TailNum + Origin + Dest,
       data=combined1, sparse=TRUE)

它通过一键编码(也称为伪变量)自动处理分类变量。如果需要,它也可以使用稀疏矩阵。

关于r - 在R中将Matrix转换为稀疏的罕见错误消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35881006/

10-12 16:32
查看更多