0

After using this code:

 output.lm = count_all %>% 
  group_by(year.y) %>% 
  do(tidy(lm(ENS~total.p, data = .)))%>% 
  filter(term == "total.p")

output.lm

I got the following Error:

Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) : 0 (non-NA) cases

Why is that?

My data is quite big, but this is the dput:

dput(count_all$total.p)
c(7.1, NA, NA, 4.84, 3.87, NA, NA, NA, NA, NA, NA, NA, NA, 4.19, 
NA, NA, 2.29, 4.52, NA, NA, 4.84, NA, 2.94, NA, NA, 4.84, NA, 
3.55, 11.61, 6.13, 2.52, 2.74, 2.39, 4.19, 3.23, 4.19, 3.23, 
NA, NA, 3.55, 4.84, 5.48, 3.55, 2.35, 4.52, 4.84, 5.81, 4.19, 
3.06, 5.16, 2.1, 5.81, 2.19, NA, 3.87, 3.16, 6.13, 2.52, 2.52, 
NA, 2.19, 3.23, 4.19, 3.55, 2.9, 1.65, 1.87, 1.68, 3.06, 3.87, 
2.06, 2.42, 2.29, 0.68, 1.42, 3.23, 2.35, 3.87, 4.19, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, 3.032, 2.548, 3.226, 2.968, 
2.194, 2.032, 2.613, 2.129, 2.419, 2.258, 3.871, 2.903, 2.742, 
3.226, 3.548, 3.129, 3.548, 3.871, 3.548, NA, 3.065, 2.839, 3.097, 
NA, NA, NA, 3.548, 3.161, 2.645, 2.516, 2.419, 4.516, 2.258, 
1.968, 6.129, 2.903, 2.29, 2.677, 2.645, 1.806, 3, 2.194, 3.226, 
2.774, 3.032, 3.065, 3.129, 3.161, 2.935, 2.71, 2.935, 2.613, 
3.871, 2.419, 1.71, 2.258, 1.613, 2.484, 3.129, 1.839, 2.387, 
3.032, 2.258, 2.258, 3.226, 2.129, 2.548, 2.613, 3.097, 2.645, 
3.548, 4.516, 5.806, 3.548, 3.065, 4.516, 3.871, 3.548, 3.548, 
2.226, 3.032, 2.419, 1.613, 1.419, 2.097, 1.613, 1.871, 2.935, 
3.097, 3.548, 2.935, 3.548, 6.129, 5.484, 3.226, 3.548, 2, 2.968, 
4.194, 2.839, 2, 2.29, 1.839, 1.935, 1.968, 1.29, 0.645, 1.968, 
3.097, 2.935, 3.065, 2.806, 3.226, 4.194, 3.065, 2.968, NA, NA, 
5.806, 6.129, 4.839, 4.516, 4.194, 4.194, 2.29, 3.548, 2.806, 
2.806, 3.871, 2.871, 2.71, 3.097, 3.226, 3.548, 3.548, 3.871, 
4.839, 3.065, 5.806, 3.548, NA, NA, 3.871, 3.871, 3.871, 3.548, 
3.129, 3.548, 2.806, 3.871, 2.323, 2.097, 4.839, 1.839, 3.032, 
1.774, 2.355, 3.548, 3.871, 4.516, 3.871, 3.548, 3.548, 3.548, 
3.871, 4.516, 4.516, 3.548, 3.226, 3.548, 3.871, 3.871, 3.032, 
2.806, 2.903, 2.194, 2.645, 2.968, 2.645, 3.226, 4.194, 3.226, 
3.548, 3.548, 3.871, 3.226, 2.935, 3.548, 2.71, 2.613, 3.129, 
2.129, 1.871, 2.645, 2.29, 2.387, 2.323, 2.194, 1.968, 1.484, 
1.581, 1.968, 2.581, 3.226, 3.548, 4.194, 3.548, 3.871, 4.839, 
5.161, 4.194, 2.419, 2.645, 2.968, 4.516, 4.839, 2.71, 2.774, 
3.548, 3.548, 2.581, 1.839, 1.323, 3.226, 2.452, 3.161, 2.581, 
2.71, 3.226, 3.129, 2.742, 1.742, 1.968, 2.548, 2.548, 2.613, 
2.097, 2.419, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 4.52, 2.39, 3.55, 
4.52, 3.16, 2.39, 3, 4.52, 5.81, 5.16, 4.19, 3.06, 4.84, 2.03, 
4.19, 2.1, 1.29, 1.32, 1.77, 1.77, 1.45, 2.23, 2.16, 1.84, 1.61, 
1.81, 1.29, 2.29, 2.35, 2.52, 2.61, 2.71, 1.61, 1.58, 2.1, 1.9, 
1.9, 2.52, 2.81, 2.61, 4.52, 2.81, 2.87, 4.19, 3.16, 4.19, 4.84, 
5.48, 3.19, 4.52, 4.52, 4.84, 5.49, 5.49, 5.81, 4.52, 5.17, 3.87, 
2.84, 4.52, 4.2, 2.71, 3.87, 3.55, 2.32, 1.78, 1.81, 1.03, 1.13, 
1.26, 2.07, 1.58, 2.1, 1, 2.2, 2.1, 2.03, 3.55, 2.52, 2.1, 2.97, 
2.58, 3, 2.36, 2.65, 2.74, 1.94, 2.52, 2.65, 2.97, 2.42, NA, 
3.16, 2.94, 2.13, 3.55, 3.87, 4.2, 5.49, 3.16, 3.55, 5.49, 6.33, 
3.13, 1.8, 2.9, 4, 2.9, 2.53, 3.67, 6.33, 3.27, 3.67, 4, 2, 2.9, 
1.33, NA, 1.6, 1.43, 1.57, NA, 1.67, 1.5, 1.2, 1.5, 2.83, 2.63, 
3.27, 2.63, 2.77, 2.87, 2.63, 1.87, 1.87, 2.1, 1.8, 1.87, 2.73, 
2.93, 2.37, 2.6, 2.37, 2.5, 4.33, 2.17, 2.4, 2.9, 2.17, 5.33, 
4.67, 6, 6.45, 5.48, 7.74, 3.55, 3.03, 3.55, 5.16, 3.87, 3.87, 
2.42, 2.84, 1.84, 1.77, 1.81, 2.35, 3.55, 2.48, 2.35, 3.55, 2.23, 
2.55, 2.26, 2.74, 2.29, 1.77, 2.52, 2.19, 1.61, 2, 1.87, 1.71, 
2.45, 2.97, 3.55, 2.68, 3.55, 3.23, 2.35, 3.1, 2.84, 3.23, 3.23, 
2.77, 2.48, 2.16, 4.52, 1.94, 1.71, 3.55, 2.97, 2.61, 3.1, 2.94, 
2.61, 2.77, 2.06, 2.32, 2.71, 1.58, NA, 2.06, NA, 1.94, 1.58, 
1.94, 2, 1.65, 3.55, 2.29, 1.68, 1.39, 1.94, 0.97, 1.32, 1.35, 
1.52, 2.06, 1.71, 2.32, 3.16, 2.13, 2.77, 2.48, 2.71, 3.55, 2.68, 
3.23, 2.48, 1.74, 2.1, 1.61, 2.29, 1.74, 2.35, 3.87, 3.13, 2.52, 
2.13, 2.94, 3.03, 4.19, 2.39, 4.52, 2.03, 2.55, 2.23, 2.94, 4.52, 
2.55, 2.9, 3.55, 3, 3.06, 2.29, 5.81, 2.03, 2.52, 1.68, 1.68, 
2.26, 1.16, 1.71, 1.39, 2.16, 2.81, 2.74, 2.1, 2.77, 2.61, 3.23, 
2.61, 2.9, 3, 3.23, 3.23, 2.94, 2.48, 2.16, 2.55, 2.42, 2.71, 
2.68, 2.26, 2.45, 2.06, 3.55, 4.52, 4.19, 3.23, 2.52, 3.87, 2.13, 
3.06, 3.03, 3.23, 3.87, NA, NA, NA, NA, 3, 3.55, 3.23, 3, 3.23, 
3.55, 2.48, 2.61, 4.19, 1.35, 1.71, 1.03, 1.23, 2.35, 0.94, 2.42, 
2.9, 2.58, 2.84, 2.23, 2.26, 2.45, 3.55, 2.32, 2.58, 2.1, 3.06, 
3.23, 4.19, 2.9, 2.26, 3.23, 2.9, 2.52, 2.13, 2.94, 2.26, 3.55, 
4.52, 2.84, 3.87, 2.94, 3.19, 2.81, 2.55, 2.42, 1.81, 2.48, 2.74, 
6.45, 5.16, 3, 3.87, 3, 3.87, 3.19, 3, 2.42, 3.19, 2.71, 2.03, 
2.39, 1.9, 1.84, 1.42, 2.03, 1.35, 1.77, 1.94, 1.61, 1.65, 2.68, 
1.9, 1.87, 1.61, 2.39, 3.55, 2.81, 2.81, 2.77, 3.23, 3.23, 2.9, 
2.68, 3.87, 3.23, 2.9, 4.19, 3.16, 4.19, 4.19, 3.55, 4.19, 2.48, 
3.55, 2.71, 3.03, 2.48, 3.23, 3.87, 3.55, 2.61, 3.55, 2.71, 4.19, 
2.16, 2.61, 2.61, 1.39, 1.61, 1.52, 1.58, 1.58, 1.77, 1.74, 1.23, 
1.52, 3.19, 1.65, 1.9, 1.52, 1.9, 2.55, 3.1, 2.42, 2.61, 2, 2.74, 
3.06, 3.87, 2.23, 2.48, 2.71, 2.65, 2.42, 2.87, 4.84, 4.19, 3.55, 
2.23, 2.39, 2.68, 2.26, 3.87, 3.23, 3.23, 1.97, 2.29, 4.19, 3.16, 
3.23, 4.52, 4.19, 4.84, 3.87, 3.06, 3.55, 2.65, 2.9, 4.84, 2.9, 
2.29, 2.55, 2.23, 2.03, 1.68, 1.81, 1.13, 2.9, 1.61, 3.19, 2.06, 
1.94, 2.1, 2.16, 2.29, 2.32, 2.42, 3.55, 3.87, 3.87, 2.71, 3.23, 
3.87, 3.23, 2.81, 1.97, 2.06, 2.42, 3.23, 3.55, 2.52, 3.55, 3.55, 
3.55, 3.87, 4.52, 2.74, 2.06, 2.35, 2.65, 2.26, 2.97, 1.68, 2.13, 
2.03, 2.84, 1.87, 2.42, 4.52, 5.81, 3.23, 2.68, 3.23, 2.58, 2.52, 
2.81, 1.52, 2.77, 1.26, 3.23, 1.94, 1.58, 1.55, 2.1, 1.84, 1.45, 
1.42, NA, 2.29, 2.13, 3.16, 2.39, 2.74, 4.52, 2.9, 2.77, 1.9, 
1.52, 3.55, 2.61, 4.52, 2.13, 2.06, 3.23, 2.23, 3.23, 3, 2.94, 
1.58, 2.23, 6.77, 2.71, 4.19, 4.19, 5.16, 5.81, 5.81, 2.68, 4.19, 
4.19, 3.55, 5.48, 2.77, 3.55, 2.03, 1.58, 2.77, 1.94, 2.48, 2.45, 
3.1, 2.29, 1.84, 1.77, 2, 1.45, 2.03, 1.9, 2.48, 2.06, 2.26, 
3.87, 2.13, 1.74, 2.48, 2.48, 2.23, 2.06, 2.1, 2.81, 2.87, 2.55, 
2.03, 2.19, 1.71, 1.61, 1.81, 1.9, 2.26, 1.65, 1.77, 2.16, 1.97, 
1.55, 2.1, 2.16, 2, 2.35, 2.45, 3.1, 3.55, 1.19, 2.97, 2.87, 
1.94, 1.23, 1.29, 1.35, 1.06, 1.71, 1.29, 2.35, 1.23, 1.16, 1.42, 
1.74, 2.48, 1.94, 1.42, 2, 1.58, 1.35, 3, 1.84, 1.87, 2.87, 2.1, 
1.94, 2.29, 2.65, 1.84, 2.23, 1.97, 2.84, 2.48, 2.68, 2.84, 1.42, 
2.45, 1.42, 1.48, 1.71, 1.32, 1.84, 2.26, 2.52, 1.9, 1.61, 2.23, 
1.55, 2.19, 1.52, 1.65, 2.16, 1.97, 1.48, 0.74, 1.55, 1.52, 1.32, 
0.74, 1.1, 1.39, 1.29, 1.77, 2.1, 1.45, 1.26, 1.55, 1.68, 0.94, 
0.74, 0.77, 1.58, 0.77, 2.23, 2.13, 1.9, 1.13, 1.26, 1.65, 1.84, 
1.94, 1.39, 1.35, 1.55, 1.81, 1.87, 1.45, 1.39, 1.74, 1.81, 1.55, 
2.13, 1.48, 1.87, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, 3.871, NA, NA, 3.097, 2.968, 3.226, 6.774, 2.742, 2.935, 
3.097, 4.839, 4.516, 3.871, 2.71, 2.194, 1.806, 2.097, 2.677, 
2.839, 2.323, 2.968, 1.548, 2.581, 2.581, 3.097, 2.742, 2.613, 
1.548, 1.387, 1.387, 2.387, 2.613, 1.516, 2.161, 5.161, 2.871, 
2.226, 2.613, 2.194, 1.484, 2.613, 3.161, 3.032, 3.871, 3.548, 
1.548, 1.742, 3.194, 2.29, 1.613, 5.484, 2.71, NA, 3.871, 1.645, 
2.032, 1.645, 1.806, 2.194, 3.226, 3.548, 4.194, 2.935, 4.839, 
2.194, 2.774, 2.839, 2.452, 1.548, 1.903)
jpsmith
  • 11,023
  • 5
  • 15
  • 36
lxrnax
  • 11
  • 3
  • 2
    This isn't enough information for us to help. Presumably there is one year where there are no cases left *after excluding values that are `NA` for either of the variables*. What is the result of `with(count_all, table(year, !is.na(ENS), !is.na(total.p)))` ? – Ben Bolker Aug 30 '23 at 15:11
  • The result is: year.y TRUE 1999 0 2000 0 2001 0 2002 0 2003 0 2004 0 2005 50 2006 51 2007 50 2008 52 2009 82 2010 86 2011 84 2012 84 2013 85 2014 87 2015 86 2016 85 2017 93 2018 88 – lxrnax Aug 30 '23 at 16:21
  • Any idea, what I could do now? Do I have to exclude those years? – lxrnax Aug 30 '23 at 16:21
  • Yes, you do (or see my answer) – Ben Bolker Aug 30 '23 at 18:14

1 Answers1

0

The problem occurs because one of your groups has no observations remaining once values with NA in the response or any of the predictors (only total.p in this case) are discarded.

Here's a reproducible example:

library(tidyverse)
mm <- (mtcars
   |> mutate(across(mpg, ~ ifelse(cyl == 6, NA, .)),
             across(cyl, factor))
   |> group_by(cyl)
)
mm |> dplyr::group_map(~lm(mpg ~ hp, data = .x))

Some possible solutions:

  • omit the NA values yourself before you start:
mm |> na.omit() |>
    dplyr::group_map(~lm(mpg ~ hp, data = .x))
  • use lme4::lmList() + broom.mixed::tidy() (note you should install the development version of broom.mixed from Github via remotes::install_github("bbolker/broom.mixed") — I just noticed and fixed a bug)
lme4::lmList(mpg ~ hp | cyl, mm) |> 
    broom.mixed::tidy()
Ben Bolker
  • 211,554
  • 25
  • 370
  • 453
  • In my case is cyl year.y, right? If so, I'm still getting the same Error as above for "lme4:...", even though the first code (omit the NA values works). – lxrnax Aug 31 '23 at 08:36
  • Yes, `cyl` is equivalent to `year.y`. If I had a reproducible example I could try to see what was going on, but can't diagnose without one ... https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – Ben Bolker Aug 31 '23 at 17:05