cbsnivcat3
is an ordered factor, so relevel
won't work. What you can do is change it to an ordinary factor:
cbsnivcat3 <- factor(cbsnivcat3, levels=c("Lower","Middle","Higher"))
Pergunta
When I run a binomial regression in R with an independed factor variable consisting of three levels "Higher" , "Middle" and "Lower" of which I want to change the reference category using relevel
I get this error:
“Error in relevel.ordered(cbsnivcat3, "Lower") :
'relevel' only for factors”
I have checked whether cbsnivcat3 is a factor
> is.factor(data$cbsnivcat3)
[1] TRUE
> levels(data$cbsnivcat3)
[1] "Higher" "Middle" "Lower"
> t1m4=glm(tertiary ~ relevel(cbsnivcat3, "Lower") , family = binomial, data = data)
Error in relevel.ordered(cbsnivcat3, "Lower") :
'relevel' only for factors
but the same with factor
glm(tertiary ~ factor(cbsnivcat3) , family = binomial, data = data)
works oke.
MQ1: What causes the error, what do I do wrong?
Thanks in advance for the tips, commands and solution(s)
str(data)
$ cbsnivcat3 : Ord.factor w/ 3 levels "Higher"<"Middle"<..: 1 1 1 1 1 1 1 1 1 1 ...
$ tertiary : num 0 0 1 1 1 1 0 1 0 0 ...
Solução
cbsnivcat3
is an ordered factor, so relevel
won't work. What you can do is change it to an ordinary factor:
cbsnivcat3 <- factor(cbsnivcat3, levels=c("Lower","Middle","Higher"))
Outras dicas
Try this
df <- data.frame(y=sample(c(0,1), size=100,replace=T),x1=rep(c('a','b','c'),100), x2=1:100)
summary(glm(y~x1+x2,data=df))
df$x1 <- relevel(df$x1, ref='b')
summary(glm(y~x1+x2,data=df))
df$x1 <- relevel(df$x1, ref='c')
summary(glm(y~x1+x2,data=df))