回答:
glmnetは直接ファクターを取ることができないため、ファクター変数をダミーに変換する必要があります。たとえば、model.matrixを使用する1つの簡単な手順です。
x_train <- model.matrix( ~ .-1, train[,features])
lm = cv.glmnet(x=x_train,y = as.factor(train$y), intercept=FALSE ,family = "binomial", alpha=1, nfolds=7)
best_lambda <- lm$lambda[which.min(lm$cvm)]
alpha = 1はLASSOを構築します。