有没有办法在安装包时忽略大小写或打开不区分大小写。
例如,RWeka
包裹。是否可以像安装它install.packages("rweka")
或以某种方式设置它ignore.case = TRUE
,但没有这样的论点install.packages()
有没有办法在安装包时忽略大小写或打开不区分大小写。
例如,RWeka
包裹。是否可以像安装它install.packages("rweka")
或以某种方式设置它ignore.case = TRUE
,但没有这样的论点install.packages()
包名称区分大小写。因此,如果您忽略大小写,您可能无法获得唯一匹配。话虽如此,实现您想要的最佳方法是:
#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
指定了字符串的开头和结尾,否则您最终可能会得到更多包含您想要的子字符串的包。
您可以通过以下方式扩充 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可能会放松自己的内部政策,但我怀疑他们仍然不允许匹配名称。