Я работаю над пакетом R, размещенным на GitHub. Когда я добавляю dplyr::everything()
к моей функции, это приводит к сбою сборки Travis CI (хотя он устанавливается нормально локально). Ошибка Travis обвиняет функцию everything()
в dplyr, и, конечно же, когда я ее удаляю, проблема решена. Функция:Вызов функции dplyr :: everything() приводит к сбою Travis CI
get_dupes <- function(dat, ...) {
dupes <- dat %>%
dplyr::group_by(...) %>%
dplyr::filter(n() > 1) %>%
dplyr::mutate(dupe_count = n()) %>%
dplyr::select(..., dupe_count, dplyr::everything()) %>%
dplyr::ungroup() %>%
dplyr::arrange(...)
var_names <- sapply(as.list(substitute(list(...)))[-1L], deparse)
if(nrow(dupes) == 0){return(paste0("No duplicate combinations found of: ", paste(var_names, collapse = ", ")))}
dupes
}
Удаление что dplyr::everything()
вызов решает проблему - но тогда функция не делать то, что я хочу (вернуть все переменные).
Сообщение об ошибке Трэвис включает в себя:
>>> Filename: janitor.Rcheck/00install.out <<<
* installing *source* package ‘janitor’ ...
** R
** preparing package for lazy loading
Error : object ‘everything’ is not exported by 'namespace:dplyr'
ERROR: lazy loading failed for package ‘janitor’
* removing ‘/home/travis/build/sfirke/janitor/janitor.Rcheck/janitor’
Почему everything()
ведет себя иначе, чем другие функции dplyr я использую?
Полезный пример. Я использую Dev-версию dplyr из GitHub 0.4.3.9001, и теперь я вижу, что эта функция была экспортирована только как [коммит в марте] (https://github.com/ hadley/dplyr/commit/2151d8b75e9d9d76ce59d1863acbdf103b4f537a) и еще не включен в версию CRAN. Таким образом, мое замешательство и неудача Трэвиса. Не указывать пространство имен для 'все'! –