我正在創建一個R包,並且我想要依賴falsy包,該包最近從CRAN獲得了archived。在包中包含已存檔的CRAN包
使用非歸檔軟件包時,通常會將軟件包名稱添加到DESCRIPTION
文件中的Imports
列表中。如何導入由CRAN歸檔的軟件包?
注意:在與Gábor聯繫之後,似乎將falsy歸檔的原因是由於潛在的inconsistencies原生和falsy
虛假概念之間的原因。他不打算解包該軟件包。
我正在創建一個R包,並且我想要依賴falsy包,該包最近從CRAN獲得了archived。在包中包含已存檔的CRAN包
使用非歸檔軟件包時,通常會將軟件包名稱添加到DESCRIPTION
文件中的Imports
列表中。如何導入由CRAN歸檔的軟件包?
注意:在與Gábor聯繫之後,似乎將falsy歸檔的原因是由於潛在的inconsistencies原生和falsy
虛假概念之間的原因。他不打算解包該軟件包。
此:
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註釋)。爲什麼不把它包含在你的包裏?
如果他沒有這樣做,可能會問Gabor他是否計劃將其重新發布到CRAN或者如果您可以接管維護?
我已聯繫Gabor,等待回覆。我很猶豫直接複製源代碼,因爲我認爲代碼複製本質上是不好的。 – user12341234
它比依靠歸檔軟件包顯着**更好。 – hrbrmstr
有趣。你說這些的理由是什麼? – user12341234
[This](http://stackoverflow.com/a/32533483/324364)可能是您正在尋找的答案...? – joran
這絕對是一個解決方案,但理想的解決方案不需要最終用戶的任何操作。 – user12341234
關於該問題的評論也討論了在github上創建自己的** drat ** repo的選項,這可能對您更有用,但對用戶來說可能更少。 – joran