Nothing
.clean_up_dependencies2 <- function(x, installed, available) {
.split_op_version <- function(x) {
pat <- "^([^\\([:space:]]+)[[:space:]]*\\(([^\\)]+)\\).*"
x1 <- sub(pat, "\\1", x)
x2 <- sub(pat, "\\2", x)
if (x2 != x1) {
pat <- "[[:space:]]*([[<>=!]+)[[:space:]]+(.*)"
version <- sub(pat, "\\2", x2)
if (!grepl("^r", version)) {
version <- package_version(version)
}
list(name = x1, op = sub(pat, "\\1", x2), version = version)
}
else {
list(name = x1)
}
}
.split_dependencies <- function(x) {
.split2 <- function(x) {
x <- sub("[[:space:]]+$", "", x)
x <- unique(sub("^[[:space:]]*(.*)", "\\1", x))
names(x) <- sub("^([[:alnum:].]+).*$", "\\1", x)
x <- x[names(x) != "R"]
x <- x[nzchar(x)]
x <- x[!duplicated(names(x))]
lapply(x, .split_op_version)
}
if (!any(nzchar(x))) {
return(list())
}
unlist(lapply(strsplit(x, ","), .split2), FALSE, FALSE)
}
x <- x[!is.na(x)]
if (!length(x)) {
return(list(character(), character()))
}
xx <- .split_dependencies(x)
if (!length(xx)) {
return(list(character(), character()))
}
pkgs <- installed[, "Package"]
have <- sapply(xx, function(x) {
if (length(x) == 3L) {
if (!x[[1L]] %in% pkgs) {
return(FALSE)
}
if (x[[2L]] != ">=") {
return(TRUE)
}
current <- as.package_version(installed[
pkgs == x[[1L]],
"Version"
])
target <- as.package_version(x[[3L]])
eval(parse(text = paste("any(current", x$op, "target)")))
}
else {
x[[1L]] %in% pkgs
}
})
xx <- xx[!have]
if (!length(xx)) {
return(list(character(), character()))
}
pkgs <- row.names(available)
canget <- miss <- character()
for (i in seq_along(xx)) {
x <- xx[[i]]
if (length(x) == 3L) {
if (!x[[1L]] %in% pkgs) {
miss <- c(miss, x[[1L]])
next
}
if (x[[2L]] != ">=") {
canget <- c(canget, x[[1L]])
next
}
current <- as.package_version(available[
pkgs == x[[1L]],
"Version"
])
target <- as.package_version(x[[3L]])
res <- eval(parse(text = paste(
"any(current", x$op,
"target)"
)))
if (res) {
canget <- c(canget, x[[1L]])
} else {
miss <- c(miss, paste0(
x[[1L]], " (>= ", x[[3L]],
")"
))
}
}
else if (x[[1L]] %in% pkgs) {
canget <- c(canget, x[[1L]])
} else {
miss <- c(miss, x[[1L]])
}
}
list(canget, miss)
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.