Tibble 3.0 сломал упаковку. Ошибка: нет общего типа для `..1` > и `..2` > - PullRequest
2 голосов
/ 08 апреля 2020

пакет casen

casen:: - это пакет для получения правильных оценок для сложных конструкций.

После выпуска Tibble 3.0 я получил это письмо от CRAN:

Уважаемый сопровождающий,

Пожалуйста, смотрите проблемы, показанные в https://cran.r-project.org/web/checks/check_results_casen.html.

Новые проблемы проверки связаны с недавним обновлением пакета 'tibble' до версии 3.0.0, с критическими изменениями, описанными в https://tibble.tidyverse.org/news/index.html.

Мы понимаем, что сопровождающий tibble не сообщил вам о предстоящей поломке, и у многих из нас в настоящее время очень мало времени работать над своими пакетами. Тем не менее, не могли бы вы попытаться исправить вашу посылку как можно быстрее? Если описания критических изменений недостаточно, пожалуйста, не стесняйтесь обратиться за помощью к сопровождающему tibble.

Пожалуйста, исправьте до 2020-04-22, чтобы безопасно сохранить ваш пакет в CRAN.

MWE и требуемое исправление

Вот MWE, иллюстрирующее, что необходимо исправить в пакете, чтобы его нельзя было удалить из CRAN:

Что работает

Как внутри пакет, но упрощенный.

# packages

# devtools::install_github("pachamaltese/casen")
# or
# install.packages("casen")

library(casen)
library(dplyr)
library(purrr)
library(rlang)

# set up a complex design and variables, just as in the package

disenio <- configuracion_disenio(datos = casen_2017_los_rios,
                                 variable = "ytotcorh",
                                 agrupacion = c("comuna", "sexo"),
                                 peso = "expc")

d_groups = disenio$grupos
des = disenio$disenio
stat_fun = srvyr::survey_mean
agrupacion = disenio$agrupacion
conglomerado = disenio$conglomerado
estrato = disenio$estrato
peso = disenio$peso
variable = disenio$variable
col_prefix = "media_"

# set j = 1 for the MWE

j <- 1

# here is a fraction of the package internals

filter_values <- d_groups %>% dplyr::slice(j)
filter_syms <- purrr::map2(names(filter_values), filter_values, ~rlang::expr(!!sym(.x) == !!.y))

des2 <- des %>%
  dplyr::filter(!!!filter_syms)

Что не работает

Это работало со старыми tibble:: версиями

# also taken from the package

des2 <- des2 %>%
  dplyr::group_by(!!!syms(c(agrupacion))) %>%
  dplyr::summarise(
    !!sym(paste0(col_prefix, variable)) := stat_fun(!!sym(variable), vartype = "ci", df = survey::degf(des2))
  )

Error: No common type for `..1` <svyby<>> and `..2` <data.frame<>>.

Моя настройка

Я установил полную версию с github, чтобы воспроизвести ошибки, сообщенные в CRAN. Вот это sessionInfo():

> sessionInfo()
R version 3.6.3 (2020-02-29)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Pop!_OS 18.04 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/openblas/libblas.so.3
LAPACK: /usr/lib/x86_64-linux-gnu/libopenblasp-r0.2.20.so

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_US.UTF-8       
 [4] LC_COLLATE=en_US.UTF-8     LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                  LC_ADDRESS=C              
[10] LC_TELEPHONE=C             LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] purrr_0.3.3       dplyr_0.8.99.9002 rlang_0.4.5.9000  casen_0.1.3       testthat_2.3.2   

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.4         compiler_3.6.3     pillar_1.4.3       forcats_0.5.0.9000
 [5] tools_3.6.3        pkgload_1.0.2      lifecycle_0.2.0    tibble_3.0.0      
 [9] lattice_0.20-40    pkgconfig_2.0.3    Matrix_1.2-18      DBI_1.1.0         
[13] cli_2.0.2          rstudioapi_0.11    haven_2.2.0        srvyr_0.3.8       
[17] withr_2.1.2        generics_0.0.2     desc_1.2.0         vctrs_0.2.99.9010 
[21] mitools_2.4        hms_0.5.3          rprojroot_1.3-2    grid_3.6.3        
[25] tidyselect_1.0.0   glue_1.4.0         R6_2.4.1           fansi_0.4.1       
[29] survival_3.1-11    tidyr_1.0.2.9000   magrittr_1.5       backports_1.1.6   
[33] ellipsis_0.3.0     splines_3.6.3      labelled_2.2.2     assertthat_0.2.1  
[37] utf8_1.1.4         survey_4.0         crayon_1.3.4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...