Ich arbeite an einem R-Paket, das auf GitHub gehostet wird. Wenn ich meiner Funktion dplyr::everything()
hinzufüge, führt dies dazu, dass das Travis CI-Build fehlschlägt (obwohl es lokal korrekt installiert wird). Der Travis-Fehler macht die everything()
-Funktion in dplyr verantwortlich, und tatsächlich, wenn ich es entferne, ist das Problem gelöst. Die Funktion ist:Der Aufruf von dplyr :: everything() in der Funktion bewirkt, dass Travis CI-Build fehlschlägt
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
}
Entfernen dass dplyr::everything()
Anruf das Problem löst - aber dann wird die Funktion nicht tun, was ich will (Rückkehr alle Variablen).
Die Travis Fehlermeldung enthält:
>>> 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’
Warum ist everything()
anders verhalten als die anderen dplyr Funktionen ich verwende?
Hilfreiches Beispiel - Ich verwende lokal die dev-Version von dplyr von GitHub, 0.4.3.9001, und jetzt sehe ich, dass diese Funktion erst ab dem [commit im März] exportiert wurde (https://github.com/ hadley/dplyr/commit/2151d8b75e9d9d76ce59d1863acbdf103b4f537a) und ist noch nicht in der CRAN-Version. Also meine Verwirrung und das Versagen von Travis. Der Namespace für 'alles' wurde nicht angegeben! –