我对R语言中的ml很陌生,并尝试在模型训练中简单地添加X_train
中的所有变量以预测y_train
。我遇到问题,因为他们不在同一个data.frame
中。我的代码是这样的:
logitmod <- glm(log_y_train ~ log_X_train, family = "binomial")
log_y_train
是长度200386的因数,而log_X_train
是174个变量和200386行的data.frame
。因此,我不能简单地键入所有列名。
但是我遇到以下错误:
变量'log_X_train'的无效类型(列表)
我以为这是一个数据帧,但是在告诉我长度不同时尝试了unlist()
。任何人都可以帮助解决此问题以在logit中使用这两个变量。
谢谢
答案 0 :(得分:3)
将log_y_train
和log_X_train
绑定到data.frame
中,以便可以在" ~ ."
中使用formula
来表示log_X_train
中的所有变量。
glm(log_y_train ~ ., family = binomial(), data = cbind(log_y_train, log_X_train))
使用reformulate()
创建一个formula
,并将log_X_train
中的所有变量作为预测变量,并将log_y_train
作为响应。这不需要绑定log_y_train
和log_X_train
。
glm(reformulate(names(log_X_train), "log_y_train"), family = binomial(), data = log_X_train)