R 为分类变量生成稀疏矩阵
我有一个数据框,如下所示R 为分类变量生成稀疏矩阵,r,matrix,R,Matrix,我有一个数据框,如下所示 x y 1 a d 2 b e 3 c f 这里x和y是分类变量。我想为每个分类特征,即x和y,生成一个带有一个热编码的稀疏矩阵 我做了以下几件事 sparse.model.matrix(~.-1,z) 3 x 5 sparse Matrix of class "dgCMatrix" xa xb xc ye yf 1 1 . . . . 2 . 1 . 1 . 3 . . 1 . 1 我在这里面临两个问题, 1) 我需要零而不
x y
1 a d
2 b e
3 c f
这里x和y是分类变量。我想为每个分类特征,即x和y,生成一个带有一个热编码的稀疏矩阵
我做了以下几件事
sparse.model.matrix(~.-1,z)
3 x 5 sparse Matrix of class "dgCMatrix"
xa xb xc ye yf
1 1 . . . .
2 . 1 . 1 .
3 . . 1 . 1
我在这里面临两个问题,
1) 我需要零而不是点和
2) 预测因子y的d级未出现在矩阵中,即(yd)不存在
有人能帮我吗?我们可能需要指定
对比度。arg
as.matrix(sparse.model.matrix(~.-1, z, contrasts.arg = lapply(z,
function(x) contrasts(factor(x), contrasts = FALSE))))
带有插入符号包的选项:
library(caret)
predict(dummyVars(~ ., z), z) # use sep = '' if you prefer
## x.a x.b x.c y.d y.e y.f
## 1 1 0 0 1 0 0
## 2 0 1 0 0 1 0
## 3 0 0 1 0 0 1
“零而不是点”?确实要使用稀疏矩阵吗。一旦用零(例如通过
m=as.matrix(m)
)替换缺少的值,它就不再稀疏。mathkid,点被解释为零。例如mat使用as.matrix(稀疏的.model.matrix(
),可能只是model.matrix