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

时间:2016-10-12 10:28:18

标签: r package case-insensitive install.packages ignore-case

有没有办法忽略这种情况或在安装软件包时打开不区分大小写。

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

2 个答案:

答案 0 :(得分: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)

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

答案 1 :(得分: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 可能会放松自己的内部政策,但我怀疑他们仍然不允许匹配名称。