11

ライブラリをR介して Python スクリプトで使用していますが、R の既定のインストールに含まれていないパッケージが必要です。どうすればインストールできますか?rpy2

install.packages("DirichletReg", repos="http://r-forge.r-project.org")

動作しません。

Python の場合:

>>> install.packages("DirichletReg", repos="http://r-forge.r-project.org") 
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'install' is not defined

そしてRから:

> install.packages("DirichletReg", repos="http://r-forge.r-project.org")
Installing package(s) into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
Warning message:
In getDependencies(pkgs, dependencies, available, lib) :
  package ‘DirichletReg’ is not available (for R version 2.14.1)
4

3 に答える 3

42

リカルドの答えはもはや機能しません。

Python からインストールするには、次のutils.install_packages関数を使用できます。

from rpy2.robjects.packages import importr
utils = importr('utils')

(そのutilsパッケージは、httpsR.utils ://CRAN.R-project.org/package=R.utils で PDF ドキュメントを見つけることができるパッケージです。または、より直接的には、私たちが使用するより詳細な関数ドキュメントです: https: //www.rdocumentation.org/packages/utils/versions/3.6.2/topics/install.packages . はR のように正当な Python 名の一部ではないため、 Python では に名前が変更されます。)install.packagesinstall_packages.

次に、パッケージを取得するリポジトリを決定する必要があります。

引数をutils.install_packages使用して呼び出すときに、リポジトリを宣言でき ます。repos

utils.install_packages('DirichletReg', repos="https://cloud.r-project.org")

utils.install_packagesまたは、呼び出す前にミラーを設定できます

utils.chooseCRANmirror(ind=1) # select the first mirror in the list

また

utils.chooseBioCmirror(ind=1) # select the first mirror in the list

そうしないと、Python/R は対話型ミラー セレクターを起動しようとします (セットアップで動作する場合と動作しない場合があります)。

そして、単一のパッケージの場合:

utils.install_packages('DirichletReg')

または、複数のパッケージの場合は、文字ベクトルを渡します。

from rpy2.robjects.vectors import StrVector

package_names = ('ggplot2', 'hexbin')
utils.install_packages(StrVector(package_names))

これらの例は、rpy2のドキュメントとドキュメントから改作されましたinstall.packages。最後の編集の時点で、ドキュメントにはまだこれを行うように記載されています。

于 2014-08-15T06:53:17.790 に答える
-3

これはどう

>>> import rpy2.interactive as r
>>> r.importr("utils")
>>> package_name = "DirichletReg"
>>> r.packages.utils.install_packages(package_name)
于 2012-07-19T19:35:50.980 に答える