Erro na substituição do quadro de dados * tmp * tem x dados tem y

Sou iniciante em R. Aqui está um código muito simples em que estou tentando salvar o termo residual:

# Create variables for child's EA:

dat$cldeacdi <- rowMeans(dat[,c('cdcresp', 'cdcinv')],na.rm=T)
dat$cldeacu <- rowMeans(dat[,c('cucresp', 'cucinv')],na.rm=T)

# Create a residual score for child EA:

dat$cldearesid <- resid(lm(cldeacu ~ cldeacdi, data = dat))

Estou recebendo a seguinte mensagem:

Error in `
Error in `$<-.data.frame`(`*tmp*`, cldearesid, value = c(-0.18608488908881,  : 
  replacement has 366 rows, data has 367
lt;-.data.frame`(`*tmp*`, cldearesid, value = c(-0.18608488908881, : replacement has 366 rows, data has 367

Procurei esse erro, mas não consegui encontrar nada que pudesse resolver isso. Além disso, eu criei exatamente o mesmo código para o EA da mãe e ele salvou o resíduo muito bem, sem erros. Ficaria muito grato se alguém pudesse me ajudar a resolver isso.

questionAnswers(1)

yourAnswerToTheQuestion