公式アカウントからの投稿が始まります

統計ソフトRの古いパッケージの導入の仕方を質問します。(当方,大変な初心者です)
Windows10コンピューターにおいて,統計ソフトRをバージョンダウンしたく(3.6.0へ),現在のものをアンインストールして,3.6.0をインストールしました。

別のコンピューター(Windows10)で既に3.6.0を使っており,同じパッケージを導入したく,このコンピューターの「Program Files」>「R」>「R-3.6.0」>「library」にあるフォルダをすべてUSBにコピーし,Rをバージョンダウンしたコンピューターの同じフォルダにペーストしようと考えております。

これでパッケージの導入は上手くいくでしょうか。

大変な初心者です。分かりやすくご説明頂けると大変嬉しいです。恐縮です。

A 回答 (5件)

car? CRANで見る限り CARS パッケージ(バージョンは0.2.2が最新)はあったけど、それじゃなく?


パッケージ自体のバージョンをコントロールしたいのでなくRのバージョンだけが問題ならR3.6.0のコンソールで
> install.packages("cars")
でCRANから3.6用パッケージをダウンロードしてインストールしてくれますよ。3.2以降はバイナリも揃っているようですし。
ただパッケージに3.6.0用はなくておそらく3.6.3でコンパイルしたものになると思うのでライブラリ導入時に毎回警告が出るかと思いますけど。
警告が出ないようにというならR3.6.3を使うのが簡単です。マイナーバージョンはバグフィックスなので(バグ調査など)特別な理由が無い限りは最新にします。

パッケージのバージョンを完全にコントロールしたいならソース(これもCRANにある)をダウンロードして個別にインストールするしかないですね。なお依存関係を自動インストールしない設定も必要です。
# 依存関係を自動にすると依存関係パッケージのバージョンが制御できない

なお、Rでインストール済みパッケージをリストするには以下のコマンドがありました。いずれもRコンソールで使います。
> library()
ライブラリパスごとにパッケージ名と簡単な説明が並びます。
> installed.packages()
パッケージごとに名前、ライブラリパス、バージョンなどの情報が並びます。依存関係も分かります。
元マシンの方で後者のコマンドを使えばすべてのライブラリがバージョンを含めて把握できます。
    • good
    • 0
この回答へのお礼

rinkun様
有難うございます。carsではなくcarのようです。3.6系統用には3.0-10がアップされていました。別マシンに入っているcarのバージョンが何であるかは,別マシンが職場にありますので未確認です。一応,パッケージも同じバージョンにしたいと思っております。ですので,3.0-10だといいのですが,別マシン上の,Rの3.6.0にinstall.packages(“car”) で入れましたので,3.0-10と願ってます。連休明け,見てみます。

rinkun様の博識に感謝します。

お礼日時:2021/09/19 14:03

#3です。



リンク先、どうもありがとうございました。

#4さんの書かれていること、うんうんと納得しながら読みました。

私も、バージョンアップが止まっているパッケージを使いたくて、古いバージョンのRを使うことがあるのですが、パッケージ関係でよくエラーに出食わします。特に、インストール時に依存する(depend)パッケージもインストールされて「よしよし」と思っていると、実行時に「○○はVersion〇〇で作成されました」というエラーが出て、その都度install.packages()でインストールし直しています。

# 依存関係を自動にすると依存関係パッケージのバージョンが制御できない、だったのですね。大いに納得です。

まあ、エラーが出なけりゃ御の字なので、出たときはその都度直せば良いと思い、対応しています。
そうしないと、dependしているパッケージがさらにdependしていたりで際限がないですから、ひとつひとつ手動でやるのはちょっと引きますよね。
    • good
    • 0
この回答へのお礼

kamiyasiro様

今後ともどうぞ宜しくお願い致します。私は自分の研究にSPSSというソフトを使っているのですが,それで出来ないところをjs-STARというソフトを使い,それでも出来ないところをjs-STARで書いてくれたスクリプトを使ってRでやっており,Rはほんとにほんとに初心者です。

色々と有難うございました。

お礼日時:2021/09/20 17:34

#2です。



古いパッケージをRのバージョン毎にダウンロードできるサイト、私にも是非教えて下さい。
    • good
    • 0
この回答へのお礼

kamiyasiro様

https://cran.ism.ac.jp/bin/windows/contrib/3.6/
3.6系用として上のアドレスを教えてもらいました。多分,最後の数字を変えれば他の系統のパッケージのリストにも行けると思います。

どうぞ宜しくお願い致します。

お礼日時:2021/09/19 13:47

Rのユーザーです。



同じバーションへの移行はやったことが無いのですが、経験をお伝えします。状況は同じだと思いますが、参考程度に聞いて下さい。

まず、おっしゃるようにライブラリのフォルダを所定の位置にコピーします。
でも、それだけでは、インストールしたという情報が無いので使用不可能だと思います。

異なるバーションへの移行の時は、次の操作を行いました。
メニューバーの「パッケージ」の下から2番目に「パッケージの更新」というメニューがありますが、それをクリックすれば、フォルダにあるパッケージを現バージョンに合わせてくれます。
それそのものはパッケージのインストール操作なのです。

たぶん、同一バージョンでもその操作でインストールされると思うのですが・・・。

ダメモトで試してみて下さい。

ただ、古いバージョンのパッケージが、ミラーサイトによっては既に無いかもしれません。

パッケージの過去バージョンはCRANではtar.gzという拡張子のファイルに圧縮されていますので、場合によっては、それをいちいちダウンロードして、install.packages()を使った手作業でインストールしなければならないかもしれません。

お役に立てず、すみません。
    • good
    • 0
この回答へのお礼

kamiyasiro様のアドバイス,参考にさせて頂きます。

別のところで,古いパッケージをRのバージョン毎にダウンロードできるサイトを教えて頂きました。目的パッケージはcarなのですが,そこからcarをダウンロードしてRの"install package(s) from local files"機能でインストールすると依存パッケージも同時にインストールされるとのことでした。

大変有難うございました。感謝申し上げます。

お礼日時:2021/09/19 07:44

Rパッケージは全ユーザ共通のものは C:\Program Files\R\.. 下にあるけど、ユーザごとにインストールしたものはC:\Users\.. 下にある。

特にRコンソールを起動する時に管理者として実行していないときはユーザーごとのフォルダにインストールされる。質問の方法だと全ユーザ共通のパッケージしか移行できないので最悪Rインストール時に標準でインストールされたものだけかもしれない。
なおRパッケージの所在パスはRコンソール上で
> .libPaths()
とすると、ライブラリパスのリストが表示されるので、そのリストにあるパスを全部確認すれば漏れはないはず。
# ライブラリパスを動的に変更するようなことしてると無理だけど

それでライブラリパスからフォルダをコピーしただけでそのまま動くかどうかは自信ない。単にバイナリをダウンロードして展開しているだけなら良いと思うけど、パッケージによってはソースからコンパイルしているし、マシン構成に依存しないとは言い切れないので。

手間は掛かるけど確実なのは、各パッケージのバージョンを確認してCRANサイトからそれぞれ同じバージョンのパッケージをダウンロードして、下記のようにローカルからインストールするコマンドを使う。
> install.packages("package.tar.gz", repos = NULL, type = "source")
package.tar.gzの部分は実際のパッケージのダウンロードファイル名ね。
    • good
    • 0
この回答へのお礼

rinkun様のアドバイス,参考にさせて頂きます。欲しいパッケージはcarなのですが,依存パッケージを調べてrinkun様が後半に書かれている方法を参考にしてインストールする方法も考えたいと思います。

また,別のところで,古いパッケージをRのバージョン毎にダウンロードできるサイトを教えて頂きました。目的パッケージはcarなのですが,そこからcarをダウンロードしてRの"install package(s) from local files"機能でインストールすると依存パッケージも同時にインストールされるとのことでした。

大変有難うございました。感謝申し上げます。

お礼日時:2021/09/19 07:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!