Ответ 1
Это полностью непроверено (я запускаю последнюю версию R и у меня нет времени на установку старой версии R, чтобы проверить ее), но, возможно, одна идея - захватить даты из "Архив" msgstr "страница для пакета, сравните это с датой вашей версии R и постепенно попробуйте установить более ранние версии, начиная с самой последней версии.
Что-то вроде этого может быть отправной точкой:
install_archive <- function(PackageName) {
if(!require("XML"))
install.packages("XML")
if(!require("devtools"))
install.packages("devtools")
rVersionDate <- as.Date(paste(R.Version()[c("year", "month", "day")],
collapse = "-"))
BaseURL <- "http://cran.r-project.org/src/contrib/Archive/"
u <- htmlParse(paste(BaseURL, PackageName, sep = ""))
doc <- readHTMLTable(u, skip.rows=1:2)[[1]][2:3]
releaseDate <- as.Date(strptime(doc$`Last modified`,
format="%d-%b-%Y"))
Closest <- which.min(rVersionDate -
releaseDate[releaseDate <= rVersionDate])
install_url(paste(BaseURL, doc$Name[Closest], sep = ""))
}
install_archive("reshape")
Отсюда я добавлю к функции, по крайней мере, следующие функции:
- Сначала я попытался установить самую последнюю версию (а не из "Архив" ), и если это не удастся, переходите вперед.
- Вперед, я бы изменил строку
which.min()
наrank()
и попробовал ранг == 1, ранг == 2 и т.д., возможно, установив максимальный ранг, в котором нужно попробовать.
Тем не менее, это много "угадывания и проверки", только программное обеспечение автоматически выполняет угадывание и проверку. И, конечно же, тот же совет утверждает, что, вероятно, есть веская причина не в CRAN!