パッケージのインストール中に大文字と小文字を区別しない、または大文字と小文字を区別しないようにする方法はありますか。
例、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)
の正規表現grep
は文字列の開始と終了を指定することに注意してください。そうしないと、部分文字列として必要なものを含むさらに多くのパッケージになってしまう可能性があります。
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
彼のコメントで指摘したとおりです。
CRANは、R パッケージの量が増えるにつれて (現在は 10K 近くになっています)、独自の内部ポリシーを緩める可能性がありますが、それでも名前の一致を許可しないのではないかと思います。