R'Memory-limits 'の文書によると、2^31-1より長いベクトルを割り当てることはできません。これは、インデックスとして使用される整数が31ビット(符号に1ビット)しか使用できないためです。しかし、64ビットシステムでは、より長いベクトルを割り当てることができます。 64ビットシステムでRが同じ最大長を課すのはなぜですか?限界を回避する方法はありますか?ベクトルの最大長がR
答えて
開発版のRで作業する場合は、実験用にこの機能をサポートすることができます。 http://stat.ethz.ch/R-manual/R-devel/doc/html/NEWS.htmlから: - 64ビット・プラットフォーム上の1要素
LONG VECTORS
2^31よりも長いベクトルのためのサポートの始まりがあります。これは、生の、論理の、整数の の複素数、複雑な文字ベクトル、およびリストに適用されます。 ( の要素は2^31-1バイトに制限されたままです。)
すべての側面は現在実験中です。
このようなベクトルを使って行うことができるのは現在のところ であり、ほとんどの操作でエラー '長いベクトルはサポートされていません 'が返されます。それらはシリアライズされ、シリアライズされず、強制され、同一の() とobject.size()が働き、手段を計算することができます。長さは になります。xlength()で取得して設定します。長いベクトルでの呼び出し長さは にエラーを投げます。
インデックス作成のほとんどの側面が利用できます。通常、2^31 - 1を超える要素にアクセスするには、 の二重値インデックスを使用できます。
詳細はリンクを参照してください。私はこれをすべて自分で実験していないので、それが実際に有用であるかどうかについてはコメントできません。
http://developer.r-project.org/R_svnlog_2011(およびhttp://developer.r-project.org/R_svnlog_2012)にアクセスし、「長いベクトル」を検索すると、進行中の作業の感覚を得ることができます。
svnログをスキャンすることをお勧めします。この仕事をしているのは本質的に「暴動、暴力、暴力、...」であることがわかりましたので、[この投稿](http://dirk.eddelbuettel.com/blog/2007/08/11/)を私に思い出させます日。 –
ここに、Benの答えを補完する詳細がいくつかあります。制限は、Rを構築するために使用される下位レベルのプログラミング言語、特に(明らかに)FORTRANコードから継承されるように見えます。だから明らかに、64ビットアドレッシングシステムを最大限に活用できるようにRを移行することは、大きなプロジェクトになるでしょう。の使用から生じるいくつかのRオブジェクトのサイズに関する制限(ヘルプ(「メモリーの制限」を参照)がある64ビットRのビルドさえ上
Rのすべてのビルドでは、ベクトルの最大長(要素数)は2^31-1、約20億、64ビットではブロックのサイズが構築されます割り当てられたメモリの容量は2^34-1バイト(8GB)に制限されていますが、これらは最終的には上げられると見込まれています*ただし、8GBのオブジェクトの必要性は例外的です(2011年に書かれた場合は例外です)。
(このマニュアルでは、脚注に「*
」と書いてありますが、「このコメントは2005年からマニュアルに載っています」と書いてあります。 :)
- 1. 長いベクトルの最小値と最大値を求める
- 2. Rのベクトル - ベクトルは最小で定義されている場合、最大
- 3. SAS長さが最大長
- 4. 長いテキストフィールドの最大長
- 5. SteamID64の最小長と最大長
- 6. オラクルナンバーフォーマットモデル最大長
- 7. JAVA_TOOL_OPTIONS最大長
- 8. Android:URLの最大長
- 9. UITextViewの最大長
- 10. スカラキューの最大長
- 11. openIDの最大長
- 12. RのURLの最大長はどれくらいですか?
- 13. 長さのベクトル要素を見つける長いR
- 14. Nativescript TextField最大長
- 15. R行の長さが異なるベクトルを結合する
- 16. URLの最大長(C#の)
- 17. Rベクトルの最初のサブベクトルから合計ベクトル長に達するまでの機能を繰り返す
- 18. [NSXMLNode stringValue]の最大長
- 19. URLフラグメント(ハッシュ)の最大長
- 20. node.jsの最大リクエスト長
- 21. MongoDB。フィールド名の最大長
- 22. UUIDの最大文字長
- 23. 最大の長方形
- 24. SQL CEの最大長
- 25. 最大長のDjango CharField
- 26. Ajax URLの最大長を
- 27. ** argvパラメータの最大長
- 28. Windowsユーザー名の最大長
- 29. 最大MySQLユーザーパスワードの長さ
- 30. Alexa skill SSMLの最大長
この制限はR-3.0.0では削除されています。 –