Вот пара функций, которые соответственно:
- получают последнюю версию R с веб-сайта RStudio
- получают URL-адрес последнего выпущенного двоичного файла Windows
Первый вариант кода, который я нашел в пакете installr
.Кажется, что нет чистого способа получить последнюю версию, поэтому нам нужно очистить веб-страницу.
Второй - это просто код @ Dave2e, оптимизированный и реорганизованный в функцию (с исправлением для устаревших версий R),поэтому, пожалуйста, направьте возражения к его ответу.
get_package_url <- function(pkg){
version <- try(
available.packages()[pkg,"Version"],
silent = TRUE)
if(inherits(version,"try-error"))
stop("Package '",pkg,"' is not available")
contriburl <- contrib.url(getOption("repos"), "binary")
url <- file.path(
dirname(contriburl),
get_last_R_version(2),
paste0(pkg,"_",version,".zip"))
url
}
get_last_R_version <- function(n=3){
page <- readLines(
"https://cran.rstudio.com/bin/windows/base/",
warn = FALSE)
line <- grep("R-[0-9.]+.+-win\\.exe", page,value=TRUE)
long <- gsub("^.*?R-([0-9.]+.+)-win\\.exe.*$","\\1",line)
paste(strsplit(long,"\\.")[[1]][1:n], collapse=".")
}
get_package_url("data.table")
# on my system with R 3.3.1
# [1] "https://lib.ugent.be/CRAN/bin/windows/contrib/3.5/data.table_1.11.4.zip"