eval(family$initialize) 中的 glm 错误:y 值必须为 0 <= y <= 1 但值是 0 和 1

glm Error in eval(family$initialize) : y values must be 0 <= y <= 1 BUT values ARE 0 and 1

我有一个如下所示的数据集:

    Act Day        Sin
1   1   Monday     3
2   0   Tuesday    0
3   0   Wednesday  1    

我正在尝试对 Act 列进行线性回归。我阅读了有关虚拟变量的信息,因此我像这样为每一天添加列:

data$Mon = ifelse(data$Day=="Monday", 1, 0)
... and so on for the other days

这给了我这样的数据

    Act Day        Sin  Mon Tue Wed Thu Fri Sat
1   1   Monday     3    1   0   0   0   0   0
2   0   Tuesday    0    0   1   0   0   0   0
3   0   Wednesday  1    0   0   1   0   0   0
... and so on

然后当我尝试像这样创建我的模型时:

glm.fit <- glm(Activity ~ Mon, data = data, family = binomial)

我收到以下错误:

Error in eval(family$initialize) : y values must be 0 <= y <= 1

我看了很多关于这个错误的其他帖子,他们都建议将 y 值设置为 1 和 0。但是我的 'Mon' 列已经是值 0 和 1。我做错了什么?

我将我的因变量包装到一个 as.factor 中并且有效:

glm.fit <- glm(as.factor(Activity) ~ Mon, data = data, family = binomial)