2

有没有办法在安装包时忽略大小写或打开不区分大小写。

例如,RWeka包裹。是否可以像安装它install.packages("rweka")或以某种方式设置它ignore.case = TRUE,但没有这样的论点install.packages()

4

2 回答 2

3

包名称区分大小写。因此,如果您忽略大小写,您可能无法获得唯一匹配。话虽如此,实现您想要的最佳方法是:

#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)

请注意,正则表达式 ingrep指定了字符串的开头和结尾,否则您最终可能会得到更多包含您想要的子字符串的包。

于 2016-10-12T10:38:22.107 回答
1

您可以通过以下方式扩充 R:

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

在你的~/.Rprofile,这样做是安全的:

install_p("rweka")

自从:

sum(duplicated(tolower(unname(av[,"Package"]))))

0正如罗兰在评论中指出的那样。

随着 R 包数量的增长(现在接近 10K), CRAN可能会放松自己的内部政策,但我怀疑他们仍然不允许匹配名称。

于 2016-10-12T10:44:44.703 回答