Метод no glance для объектов класса dr c error - PullRequest
0 голосов
/ 21 июня 2020

Я пытаюсь подогнать модели роста к продольным данным, используя функцию Гомпертца в пакете dr c. Чтобы сгенерировать модели для нескольких стран одновременно, я вложил данные и использовал функцию map из tidyverse. Шаг моделирования с использованием purrr :: map выполняется нормально, но когда я пытаюсь получить сводные данные модели с помощью параметра glance в broom, я получаю сообщение об ошибке, для которого не существует метода glance. объекты класса dr c. Однако, похоже, что glance работает с объектами dr c, согласно этой веб-странице: https://rdrr.io/github/tidyverse/broom/man/glance.drc.html

Ниже приведен пример, включающий набор данных игрушек, включающий 2 страны и 6 временных точек для каждый.

# Набор данных протестирован

iso_code    total_cases num_days  
IND 1   1  
IND 3   10  
IND 3   20  
IND 3   30  
IND 165 50  
IND 979 60  
SGP 3   1  
SGP 18  10  
SGP 47  20  
SGP 86  30  
SGP 187 50  
SGP 455 60  

# установка пакетов tidyverse и dr c

> library(tidyverse)
> library(drc)

> data = read.delim("test_data.txt", sep='\t', header=T)
> dim(data)

[1] 12  3

> str(data)

'data.frame':   12 obs. of  3 variables:
 $ iso_code   : chr  "IND" "IND" "IND" "IND" ...
 $ total_cases: int  1 3 3 3 165 979 3 18 47 86 ...
 $ num_days   : int  1 10 20 30 50 60 1 10 20 30 ...

# размещение данных по странам

> by_country = data %>% group_by(iso_code)%>% nest()

# запуск модели dr c gompertz на вложенных данных

> by_country_g = by_country %>% mutate(model= purrr::map(data,~  drm((total_cases)/max(total_cases) ~ num_days, fct=G.4(), data=.)))

# проверка содержимого модели

> by_country_g$model

[[1]]

A 'drc' model.

Call:
drm(formula = (total_cases)/max(total_cases) ~ num_days, data = .,     fct = G.4())

Coefficients:
b:(Intercept)  c:(Intercept)  d:(Intercept)  e:(Intercept)  
    -0.164861       0.002555       1.531310      54.838386  


[[2]]

A 'drc' model.

Call:
drm(formula = (total_cases)/max(total_cases) ~ num_days, data = ., fct = G.4())

Coefficients:
b:(Intercept)  c:(Intercept)  d:(Intercept)  e:(Intercept)  
      -0.1257         0.0845         1.4638        52.9056  

# извлечение сводки моделей с помощью взгляда

> summary_g = by_country_g %>% mutate(glance = purrr::map(model, broom::glance))%>% unnest(glance)


Error: Problem with mutate() input glance.  
x No glance method for objects of class drc  
ℹ Input glance is purrr::map(model, broom::glance).  
ℹ The error occured in group 1: iso_code = "IND".
Run rlang::last_error() to see where the error occurred.
...