lm.fit(x,y,offset = offset,singular.ok = single.ok,...)中的错误:使用lm时出现0(非NA)情况

问题描述 投票:0回答:1

使用此代码后:

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

output.lm

我收到以下错误:

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

这是为什么?

我的数据相当大,但这是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)
r dataframe error-handling lm
1个回答
0
投票

出现问题的原因是,一旦响应中带有

NA
的值 任何预测变量(在本例中仅
total.p
)被丢弃,您的一组就没有剩余观察结果。

这是一个可重现的示例:

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))

一些可能的解决方案:

    在开始之前,请自行省略
  • NA
     值:
mm |> na.omit() |> dplyr::group_map(~lm(mpg ~ hp, data = .x))

    使用
  • lme4::lmList()
     + 
    broom.mixed::tidy()
    (请注意,您应该通过 
    broom.mixed
     从 Github 安装 
    remotes::install_github("bbolker/broom.mixed")
     的开发版本 — 我刚刚注意到并修复了一个错误)
lme4::lmList(mpg ~ hp | cyl, mm) |> broom.mixed::tidy()
    
© www.soinside.com 2019 - 2024. All rights reserved.