个人见解,仅供参考
1.model.matrix:分组矩阵
在LASSO主要用于对因子(性别,分期)进行分组:最好只含两种数值(a,b; yes,no; good,bad),能换成0,1矩阵
因为LASSO的自变量X不是数据框而是矩阵
2.先构建符合条件的数据框(实际操作中应该都是数据框转矩阵)
'''
x1 <- c('a','a','a','b','b')
x2 <- c('qwe','qwe','asd','asd','qwe')
x3 <- c(2,2,2,1,2)
x1 <- as.data.frame(x1)
x2 <- as.data.frame(x2)
x3 <- as.data.frame(x3)
x <- cbind(x1,x2,x3)
x
'''

image.png
'''
class(x$x1)
'''
此时返回数据框内各列的类型为字符串和数值
3.数据框各列转换成因子类型
写个小循环把数据框各列转换成因子类型
'''
for(i in names(x)) {x[,i] <- as.factor(x[,i])}
class(x$x1)
'''
此时返回因子类型
4.model.matrix构建分组矩阵
'''
x1<- model.matrix(~.,x)
x1
'''
要注意为0,为1的对象是哪个(b,qwe,2代表1)。其实也可以在数据框内就直接替换成0,1矩阵

image.png
'''
x2 <- as.matrix(x1)
class(x2)
'''
返回矩阵类型
0,1矩阵构建完成
可以做为LASSO分析中的自变量X了
个人见解,仅供参考