Это:
FALSY <- FALSE
TRUTHY <- TRUE
is_falsy <- function(object) {
is.null(object) ||
identical(object, FALSE) ||
identical(object, 0L) ||
identical(object, 0.0) ||
identical(object, 0+0i) ||
identical(object, "") ||
identical(object, as.raw(0)) ||
identical(object, logical()) ||
identical(object, integer()) ||
identical(object, double()) ||
identical(object, complex()) ||
identical(object, character()) ||
identical(object, raw()) ||
identical(object, list()) ||
inherits(object, "try-error")
}
is_truthy <- function(object) {
! is_falsy(object)
}
`%&&%` <- function(lhs, rhs) {
lres <- withVisible(eval(lhs, envir = parent.frame()))
if (is_truthy(lres$value)) {
eval(rhs, envir = parent.frame())
} else {
if (lres$visible) { lres$value } else { invisible(lres$value) }
}
}
nay <- function(rhs) {
if (is_falsy(rhs)) { TRUTHY } else { FALSY }
}
try_quietly <- function(expr) {
try(expr, silent = TRUE)
}
является всей степенью (минус roxygen комментариев) пакета. Почему бы просто не включить его в свой пакет?
В противном случае, возможно, спросите у Габора, планирует ли он переиздать его в CRAN или если вы можете взять на себя обслуживание?
[This] (http://stackoverflow.com/a/32533483/324364) может быть ответ, который вы ищете ...? – joran
Это определенно решение, хотя идеальное решение не потребует каких-либо действий со стороны конечного пользователя. – user12341234
В комментариях к этому вопросу также обсуждается возможность создания собственного ** drat ** repo на github, что может быть более полезным для вас, но, вероятно, меньше для пользователей. – joran