2016-10-12 6 views
1

パッケージをインストールする際に大文字小文字を無視するか、大文字小文字の区別を無効にする方法はありますか?パッケージのインストール中に大文字と小文字を区別しないパッケージインストール(大文字と小文字を区別しない)

例、RWekaパッケージ。 install.packages("rweka")のようにインストールすることも、何とかignore.case = TRUEを設定することも可能ですが、そのような引数はありません。install.packages()

+1

理論的には、RWekaとrwekaという2つのパッケージがあります(ただし、CRANでは許可されません)。しかし、その必要はありません。 – Roland

答えて

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

あなたはしてRを増やすことができます。

あなた ~/.Rprofile
install_p <- function(x) { 
    av <- available.packages() 
    av <- setNames(av[,"Package"], tolower(av[,"Package"])) 
    install.packages(av[x]) 
} 

、それを行うのは安全だろう。

install_p("rweka") 

以来:

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

ローランドがで述べたように0です彼のコメント。

CRAN Rパッケージの量が増えるにつれて(これは10Kに近い)、独自の内部ポリシーを緩和しますが、まだ一致する名前は許可されていないと思われます。

関連する問題