我试着安装一个包,使用
install.packages("foobarbaz")
却收到了警告
Warning message:
package 'foobarbaz' is not available (for R version x.y.z)
为什么R认为这个包是不可用的?
参见这些问题的具体例子:
My package doesn't work for R 2.15.2
package 'Rbbg' is not available (for R version 2.15.2)
package is not available (for R version 2.15.2)
package doMC NOT available for R version 3.0.0 warning in install.packages
Dependency ‘Rglpk’ is not available for package ‘fPortfolio’
What to do when a package is not available for our R version?
Is the bigvis package for R not available for R version 3.0.1?
package ‘syncwave’/‘mvcwt’ is not available (for R version 3.0.2)
package ‘diamonds’ is not available (for R version 3.0.0)
Is the plyr package for R not available for R version 3.0.2?
Package bigmemory not installing on R 64 3.0.2
package "makeR" is not available (for version 3.0.2)
package ‘RTN’ is not available (for R version 3.0.1)
Trouble Installing geoR package
package ‘twitterR’ is not available (for R version 3.1.0)
How to install 'Rcpp, package? I got "package is not available"
package ‘dataset’ is not available (for R version 3.1.1)
"package ‘rhipe’ is not available (for R version 3.1.2)"
另一个原因+解决方案
当我试图在我公司的HPC上的RStudio中安装pkgdown时,我遇到了这个错误(“包XXX对于R版本X.X.X不可用”)。
事实证明,他们在HPC上拥有的CRAN快照是2018年1月(几乎2年前)的,而且pkgdown当时确实不存在。这意味着为外行用户控制包的源代码,但作为开发人员,在大多数情况下,您可以通过以下方式更改:
## checking the specific repos you currently have
getOption("repos")
## updating your CRAN snapshot to a newer date
r <- getOption("repos")
r["newCRAN"] <- "https://cran.microsoft.com/snapshot/*2019-11-07*/"
options(repos = r)
## add newCRAN to repos you can use
setRepositories()
如果您知道您在做什么,并且可能需要多个在您的系统的CRAN中不可用的包,您可以在您的项目. rprofile中进行设置。
如果只有一个包,可能只使用install。包(“包名”,repos =“一个比你公司的旧的CRAN快照更新的CRAN”)。
访问https://cran.r-project.org/src/contrib/Archive/。
用Ctrl + F找到要安装的包
单击包名称
确定要安装的版本
打开RStudio
输入"install.packages("https://cran.r-project.org/src/contrib/Archive/[NAME OF PACKAGE]/[VERSION NUMBER].tar.gz", repos = NULL, Type ="source")"
在某些情况下,您需要提前安装几个包才能使用您想要使用的包。
例如,我需要安装7个包(Sejong, hash, rJava, tau, RSQLite, devtools, stringr)来安装KoNLP包。
install.packages('Sejong')
install.packages('hash')
install.packages('rJava')
install.packages('tau')
install.packages('RSQLite')
install.packages('devtools')
install.packages('stringr')
library(Sejong)
library(hash)
library(rJava)
library(tau)
library(RSQLite)
library(devtools)
library(stringr)
install.packages("https://cran.r-project.org/src/contrib/Archive/KoNLP/KoNLP_0.80.2.tar.gz", repos = NULL, type="source")
library(KoNLP)
我发现@Richie Cotton的出色解决方案中#6包的一个轻微变化已经过时了。
有时包维护者可能会显示它不支持的R版本差距。在这种情况下,您至少有两个选择:1)将您的R版本升级到目标包已经支持的下一个版本,2)从可用的旧版本中安装最新的版本,以配合您的R版本。
一个具体的例子:用于数据挖掘的包的最新CRAN版本5.3.0不支持R版本3.4,因为它在包版本5.2.0 (R >= 2.13.0)和5.3.0 (R >=3.5)之间有很大的更新。
在这种情况下,升级R安装的替代方案是前面提到的解决方案。如果您没有devtools包(其中包括包远程),请安装devtools包,然后安装可以在当前r中工作的特定版本。您可以在CRAN页面上查找特定的包存档信息。
library("devtools")
install_version("rattle", version = "5.2.0", repos = "http://cran.us.r-project.org")