Я пытаюсь выполнить регрессию во вложенном фрейме данных как описано здесь. Для своих целей я использую felm
из пакета lfe
, потому что у меня много уровней фиксированных эффектов.
Если я повторю пример из приведенной выше ссылки, используя felm
вместо lm
, он будет работать по большей части, пока я не попробую использовать broom::augment
.
library(tidyverse)
library(broom)
library(gapminder)
library(lfe)
by_country <- gapminder %>%
group_by(continent, country) %>%
nest()
country_felm <- function(data){
felm(lifeExp ~ year, data = data)
}
by_country <- by_country %>%
mutate(model = purrr::map(data, country_felm)
)
До этого момента все работало, за исключением того, что мне пришлось использовать функцию вместо формулы в purrr::map
в последней строке кода, возможно, еще одну причуду felm
.
Теперь, если я попытаюсь использовать broom
для извлечения выходных данных модели, это будет работать для glance
и tidy
, но не для augment
.
by_country %>% unnest(model %>% purrr::map(broom::glance))
by_country %>% unnest(model %>% purrr::map(broom::tidy))
by_country %>% unnest(model %>% purrr::map(broom::augment))
Попытка использовать augment
приводит к следующему сообщению об ошибке:
Error in mutate_impl(.data, dots) :
argument must be coercible to non-negative integer
In addition: Warning message:
In seq_len(nrow(x)) : first element used of 'length.out' argument