6

私の同僚は、R での作業がプラットフォームに依存しないこと、具体的には、コードが Linux、Mac、および Windows で実行され、あるシステムで作成されたファイルが他のシステムで機能することを確認したいと考えています。

問題は私のグループで以前に発生したので、問題が発生しないことを協力者に自信を持って保証するのを容易にする一般的な回答をいただければ幸いです. たとえば、「 (対象分野の専門家)が SO でそう言ったから」以外の参照があると役立ちます。

  1. 一般に、R の機能がプラットフォーム固有であるかどうかを知る方法はありますか (これは関数のヘルプに記載されていると想定できます)。
  2. プラットフォームに依存しないと確信できるパッケージまたは機能はありますか?
  3. 注意すべきパッケージや機能の種類はありますか?

R によって作成されたファイルのクロスプラットフォームでの読みやすさについて、以前に 2 つの質問をしたことがあります。R オブジェクトは「ダンプ」読み取り可能なクロスプラットフォームを使用してダンプされますか?

4

3 に答える 3

4

カールの答えに加えて、プラットフォームに依存しない作業を確実にする明白な方法は、すべてのプラットフォームでテストすることです。

これはまさに CRAN が 3800 以上のパッケージで行っていることであり、ここからログにアクセスできます。

要するに、R はプラットフォームに依存しないように懸命に努力しており、ほぼ成功しています。コードでこれを行うには、依存関係を導入する API やツールを避けるかどうかはあなた次第です。のような抽象化system.file(package="boot")とそれらが使用する関数を見てください---ファイルシステムの「ルート」を簡単に抽象化でき、セパレーターはすでに処理されています。

于 2012-06-01T16:26:15.937 に答える
2

Check cran.r-project.org for package listings. Every package has a page which will tell you if it's passed testing for different operating systems. Further, as you suggested, the help files are pretty explicit about OS dependencies. R is "smart" enough to translate "/" to "\" in pathnames for those poor folks working in Windows. Generally speaking, graphics access is the area most likely to have platform dependencies. Obviously if you system lacks {X11, ImageMagick, ..} you're stuck anyway.

于 2012-06-01T16:21:43.550 に答える
2

Carl と Dirk のコメントに加えて、ソースからのコンパイルが必要なパッケージ (Omegahat、Rforge、または r-forge にある多くの (すべて?) パッケージと同様) は、適切な C を備えたマシンで実行する必要があることを理解する必要があります。および Fortran ライブラリ。いくつかの興味深いパッケージは GTK+ と Tcl/Tk に依存しており、適切なバージョンを入手できるようにする必要があるかもしれません。Simon Urbanek が維持している http://r.research.att.com/ ページは、Mac のサポート リソースについていくのに役立つリソースです

于 2012-06-01T16:51:19.493 に答える