fitting a logistic regression model.

rotenone <- data.frame(dose=factor(c("high", "medium", "low")),
                       affected=c(44, 24, 0),
                       total=c(50, 46, 49))
print(rotenone)
rotenone_logit_mod <- glm(affected ~ 1 + dose, data = rotenone, family = binomial(link = "logit"))
summary(rotenone_logit_mod)

above is my code for comparing the proportion of affected insects in the three groups by fitting a logistic regression model.

but the error is:
"Error in eval(family$initialize) : y values must be 0 <= y <= 1"

can someone please help me fix the problem?
thank you

A logistic regression is for a continuous independent variable(s) and a binary response. Your independent variable is categorical, so logistic regression is not appropriate.

the binomial glm generally expects data in an Untable'd form. Instead of affected and total, you would want a long data structure with two variables: dose and affected where affected is 0/1 for affected (1) or unaffected (0) with 44 affected and 6 unaffected for high, etc.. But, in this case, you have "separation", low is going to have an infinite "slope" because it perfectly predicts unaffected (0). Firth (1993) is the canonical solution for that part of the problem though there is other work on the question of separation.