rdataframelme4

Error trying to run a glmer model: drop.unused.levels = TRUE, : variable lengths differ


I am trying to run a glmer model (family=binomial). This is a simplified version of my data created with dput()

structure(list(subject = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
5, 5, 5, 5, 5), Acc = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 
1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1), total_TikTok = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 7.28666666666667, 7.28666666666667, 7.28666666666667, 
7.28666666666667, 7.28666666666667, 7.28666666666667, 7.28666666666667, 
7.28666666666667, 7.28666666666667, 7.28666666666667, 7.28666666666667, 
7.28666666666667, 7.28666666666667, 7.28666666666667, 7.28666666666667, 
7.28666666666667, 7.28666666666667, 7.28666666666667, 7.28666666666667, 
7.28666666666667, 7.28666666666667, 7.28666666666667, 7.28666666666667, 
7.28666666666667, 7.28666666666667, 7.28666666666667, 7.28666666666667, 
7.28666666666667, 7.28666666666667, 7.28666666666667, 7.28666666666667, 
7.28666666666667, 7.28666666666667, 7.28666666666667, 7.28666666666667, 
7.28666666666667, 7.28666666666667, 7.28666666666667, 7.28666666666667, 
7.28666666666667, 7.28666666666667, 7.28666666666667, 7.28666666666667, 
7.28666666666667, 7.28666666666667, 7.28666666666667, 7.28666666666667, 
7.28666666666667, 7.28666666666667, 7.28666666666667, 7.28666666666667, 
7.28666666666667, 7.28666666666667, 7.28666666666667, 7.28666666666667, 
7.28666666666667, 7.28666666666667, 7.28666666666667, 7.28666666666667, 
7.28666666666667, 7.28666666666667, 7.28666666666667, 7.28666666666667, 
7.28666666666667, 7.28666666666667, 7.28666666666667, 7.28666666666667, 
7.28666666666667, 7.28666666666667, 7.28666666666667, 7.28666666666667, 
7.28666666666667, 7.28666666666667, 7.28666666666667, 7.28666666666667, 
7.28666666666667, 7.28666666666667, 7.28666666666667, 7.28666666666667, 
7.28666666666667, 7.28666666666667, 7.28666666666667, 7.28666666666667, 
7.28666666666667, 7.28666666666667, 7.28666666666667, 7.28666666666667, 
7.28666666666667, 7.28666666666667, 7.28666666666667, 7.28666666666667, 
7.28666666666667, 7.28666666666667, 7.28666666666667, 7.28666666666667, 
7.28666666666667, 7.28666666666667, 7.28666666666667, 7.28666666666667, 
7.28666666666667, 6.85666666666667, 6.85666666666667, 6.85666666666667, 
6.85666666666667, 6.85666666666667, 6.85666666666667, 6.85666666666667, 
6.85666666666667, 6.85666666666667, 6.85666666666667, 6.85666666666667, 
6.85666666666667, 6.85666666666667, 6.85666666666667, 6.85666666666667, 
6.85666666666667, 6.85666666666667, 6.85666666666667, 6.85666666666667, 
6.85666666666667, 6.85666666666667, 6.85666666666667, 6.85666666666667, 
6.85666666666667, 6.85666666666667, 6.85666666666667, 6.85666666666667, 
6.85666666666667, 6.85666666666667, 6.85666666666667, 6.85666666666667, 
6.85666666666667, 6.85666666666667, 6.85666666666667, 6.85666666666667, 
6.85666666666667, 6.85666666666667, 6.85666666666667, 6.85666666666667, 
6.85666666666667, 6.85666666666667, 6.85666666666667, 6.85666666666667, 
6.85666666666667, 6.85666666666667, 6.85666666666667, 6.85666666666667, 
6.85666666666667, 6.85666666666667, 6.85666666666667, 6.85666666666667, 
6.85666666666667, 6.85666666666667, 6.85666666666667, 6.85666666666667, 
6.85666666666667, 6.85666666666667, 6.85666666666667, 6.85666666666667, 
6.85666666666667, 6.85666666666667, 6.85666666666667, 6.85666666666667, 
6.85666666666667, 6.85666666666667, 6.85666666666667, 6.85666666666667, 
6.85666666666667, 6.85666666666667, 6.85666666666667, 6.85666666666667, 
6.85666666666667, 6.85666666666667, 6.85666666666667, 6.85666666666667, 
6.85666666666667, 6.85666666666667, 6.85666666666667, 6.85666666666667, 
6.85666666666667, 6.85666666666667, 6.85666666666667, 6.85666666666667, 
6.85666666666667, 6.85666666666667, 6.85666666666667, 6.85666666666667, 
6.85666666666667, 6.85666666666667, 6.85666666666667, 6.85666666666667, 
6.85666666666667, 6.85666666666667, 6.85666666666667, 6.85666666666667, 
6.85666666666667, 6.85666666666667, 6.85666666666667, 6.85666666666667, 
6.85666666666667, 7.85666666666667, 7.85666666666667, 7.85666666666667, 
7.85666666666667, 7.85666666666667, 7.85666666666667, 7.85666666666667, 
7.85666666666667, 7.85666666666667, 7.85666666666667, 7.85666666666667, 
7.85666666666667, 7.85666666666667, 7.85666666666667, 7.85666666666667, 
7.85666666666667, 7.85666666666667, 7.85666666666667, 7.85666666666667, 
7.85666666666667, 7.85666666666667, 7.85666666666667, 7.85666666666667, 
7.85666666666667, 7.85666666666667, 7.85666666666667, 7.85666666666667, 
7.85666666666667, 7.85666666666667, 7.85666666666667, 7.85666666666667, 
7.85666666666667, 7.85666666666667, 7.85666666666667, 7.85666666666667, 
7.85666666666667, 7.85666666666667, 7.85666666666667, 7.85666666666667, 
7.85666666666667, 7.85666666666667, 7.85666666666667, 7.85666666666667, 
7.85666666666667, 7.85666666666667, 7.85666666666667, 7.85666666666667, 
7.85666666666667, 7.85666666666667, 7.85666666666667, 7.85666666666667, 
7.85666666666667, 7.85666666666667, 7.85666666666667, 7.85666666666667, 
7.85666666666667, 7.85666666666667, 7.85666666666667, 7.85666666666667, 
7.85666666666667, 7.85666666666667, 7.85666666666667, 7.85666666666667, 
7.85666666666667, 7.85666666666667, 7.85666666666667, 7.85666666666667, 
7.85666666666667, 7.85666666666667, 7.85666666666667, 7.85666666666667, 
7.85666666666667, 7.85666666666667, 7.85666666666667, 7.85666666666667, 
7.85666666666667, 7.85666666666667, 7.85666666666667, 7.85666666666667, 
7.85666666666667, 7.85666666666667, 7.85666666666667, 7.85666666666667, 
7.85666666666667, 7.85666666666667, 7.85666666666667, 7.85666666666667, 
7.85666666666667, 7.85666666666667, 7.85666666666667, 7.85666666666667, 
7.85666666666667, 7.85666666666667, 7.85666666666667, 7.85666666666667, 
7.85666666666667, 7.85666666666667, 7.85666666666667, 7.85666666666667, 
7.85666666666667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0), IntegerTotalTikTok = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 
8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 8, 8, 8, 8, 
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 6, 6, 6, 6, 6, 6, 6, 
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
6, 6, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0)), row.names = c(NA, 500L), class = "data.frame")

I have a column called subject I am using in the random structure of the model. The outcome variable is Acc and the predictor is IntegerTotalTikTok. The model looks like this:

glmer(Acc ~ IntegerTikTokScale + (1|subject),data = Data2,family = "binomial")

This gives me the error:

drop.unused.levels = TRUE,  : 
  variable lengths differ (found for 'IntegerTikTokScale')

What I don't understand is that the IntegerTikTokScale is (or should be) the same as the total_TikTok scale, with the only difference that the latter has decimals and the former has been rounded to integers with the following code:

IntegerTikTokScale <- round(Data_Inhibition$total_TikTok,0)

This should have just rounded all values to whole values (e.g. a 6.7 becomes a 7). Yet, when I run the model above using the total_TikTok column, the model runs. And when I try running it with IntegerTikTokScale, I get the error mentioned in the title. I check that there are no NA's and the length of the colums is of course the same (otherwise I wouldn't have been able to add the column to the data.frame in the first place.

Any idea on what might be causing this, or how to fix it?


Solution

  • Your code:

    IntegerTikTokScale <- round(Data_Inhibition$total_TikTok,0)
    

    shows that you created IntegerTikTokScale as a global variable, and from a different data.frame then what you are using in your model. If Data2 and Data_Inhibition have a different number of rows, then you will get this issue, which is my best guess at what happened.

    We all get mixed up with our data.frames and variables sometimes. Try to use defensive coding to guard against these kinds of issues. In particular, try not to create loose vectors that do not live a data.frame when you are modelling. The data argument makes it clear what the context of the variables is, and ensures that e.g. missing values are dealt with correctly. Basically, if you had written:

    Data2$IntegerTikTokScale <- round(Data_Inhibition$total_TikTok,0)
    

    you would have gotten a warning about the wrong length right there. Or if you would have written:

    Data_Inhibition$IntegerTikTokScale <- round(Data_Inhibition$total_TikTok,0)
    

    then your glmer call would have given you a more informative error: the variable does not exist in Data2.