R 安装包时不区分大小写的包安装(忽略大小写)

R 安装包时不区分大小写的包安装(忽略大小写),r,package,case-insensitive,install.packages,ignore-case,R,Package,Case Insensitive,Install.packages,Ignore Case,在安装软件包时,是否有任何方法可以忽略大小写或启用大小写不敏感 例如,RWeka包。是否可以像install.packagesrweka那样安装它,或者以某种方式将ignore.case=TRUE设置为TRUE,但没有类似的参数可以安装。包名区分大小写。因此,如果忽略该情况,可能无法获得唯一匹配。话虽如此,实现目标的最佳方式是: #get list of packages packages <- available.packages()[,"Package"] #find matches

在安装软件包时,是否有任何方法可以忽略大小写或启用大小写不敏感


例如,RWeka包。是否可以像install.packagesrweka那样安装它,或者以某种方式将ignore.case=TRUE设置为TRUE,但没有类似的参数可以安装。包名区分大小写。因此,如果忽略该情况,可能无法获得唯一匹配。话虽如此,实现目标的最佳方式是:

#get list of packages
packages <- available.packages()[,"Package"]
#find matches by ignoring case
my_packs <- packages[grep("^rweka$",packages,ignore.case=TRUE)]
#install - beware of multiple matches
install.packages(my_packs)

注意grep中的regexp指定字符串的开始和结束,否则您可能会得到更多包含您想要作为子字符串的包。

您可以使用以下内容来扩充R:

install_p <- function(x) {
  av <- available.packages()
  av <- setNames(av[,"Package"], tolower(av[,"Package"]))
  install.packages(av[x])
}
自:

sum(duplicated(tolower(unname(av[,"Package"]))))
正如罗兰在评论中指出的那样,0


随着R软件包数量的增长,CRAN可能会放松其内部政策,目前已接近10000个,但我怀疑他们仍然不允许匹配名称。

理论上可能有两个软件包RWeka和RWeka,尽管CRAN不允许这样做。但是,您不应该需要它。
sum(duplicated(tolower(unname(av[,"Package"]))))