問題タブ [r-bigmemory]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - ヘッダー行と最初のデータ行の寸法が一致しません。ビッグマトリックス
私は大規模なデータセットを扱っています。コマンドでそれらのいくつかを読み取ることができますが、そのようなデータセットのためにread.table
引数を使用すると、 fill=TRUE
NA を表す空白がいくつかあります。
現在、最大35 Gbのデータベースがあるため、通常のread.table
コマンドは役に立たないため、パッケージに read.big.matrix 関数を見つけましたbigmemory
。問題は、次のエラーが返されることです。
「ヘッダー行と最初のデータ行の寸法が一致しません。」空欄をNAとして読んでいないからだと思います。
どうすればこの問題を解決できるか知っていますか? ありがとう。
r - bigmemory パッケージの big.matrix オブジェクトの実際のメモリ サイズを確認するにはどうすればよいですか?
パッケージを使用しbigmemory
て重いデータセットをロードしていますが、オブジェクトのサイズを (関数で) チェックすると、常に664 バイトobject.size
が返されます。私が理解している限り、重みは従来の R 行列とほぼ同じである必要がありますが、クラス (倍精度または整数) によって異なります。では、なぜ 664 バイトの回答が得られるのでしょうか。以下、再現可能なコード。最初のチャンクは非常に遅いので、シミュレートされる値の数を自由に減らしてください。(10^6 * 20) で十分です。
r - RcppのbigmemoryオブジェクトからNAを持つ列を抽出する
Rcpp の big.matrix オブジェクトから列を抽出する関数を作成しようとしています (結果を R に渡す前に cpp で分析できるようにするため)、それを認識させる方法がわかりませんNA (以下の最小限の例に示すように、現在は -2147483648 として表示されています)。関数GetMatrixCols ( src/bigmemory.cpp ) に Rcpp から直接アクセスできればさらに良いのですが、その方法をまだ見つけていません。
c++ - Rcpp: テンプレート機能使用時にエラーが発生しました
のさまざまなデータ型に対応するために、biglasso パッケージを改訂していますbig.matrix
。現在のバージョンはdouble
type のみをサポートしています。ソースコードはこちらです。
私がしたことは、単純にヘッダーを追加し、を入力として受け取るtemplate
関数に必要な変更を加えることでした。big.matrix
以下の関数は一例です。xpMat
は へのポインタbig.matrix
です。
しかし、変更を加えた後、R パッケージはコンパイルに失敗しました。以下はエラーメッセージです。私には、何かcrossprod_bm
がうまくいかなかったと書かれています:
誰がバグが何であるか教えてもらえますか? バグは型変換に関連していますか? 計算での型変換は自動でできると思います。
事前にどうもありがとうございました!
[@Coatless に応じて更新]
次のようなディスパッチャがありました。
【更新終了】
【アップデート2】
全体像を確認できるように、すべての変更をGitHubにコミットしました。コメントいただければ幸いです。
【アップデート2】
【アップデート3】
cdfit_gaussian_edpp_cpp
戻るべきだと思いますRcpp::List
。これを(上記のように)修正しましたが、それでも同様のエラーが発生しました。
私のコードのテンプレートに何か問題があるようです.おそらくテンプレートを定義していますか? テンプレートを呼び出す?
テンプレートを使用しなければ、すべてうまくいきます。たとえば、エラー メッセージでキャプチャされた関数をテンプレート関数ではないものに戻すと、その関数はエラーでキャプチャされなくなります。ただし、次のテンプレート関数は同様のエラー メッセージでキャプチャされます。
一方で、 と を使って例を追ってみましたRcpp
bigmemory
。パッケージでテンプレートを使用する方法と同様に、テンプレート関数を次のように変更しました。しかし、それは動作します!!! これは、テンプレートを正しく使用していると思います。
私はここで本当に混乱しており、専門家がバグを指摘できるかどうかに感謝します!! どうもありがとう!
【アップデート3】
r - Rで〜80GB Dist Matrixを溶かす - 効率のための戦略?
友達、
無向グラフで igraphs shortest.paths を使用して研究者間の距離行列を計算すると、80GB の行列が得られました。次のステップは、マトリックスの上三角を溶かすことです。このタイプのマトリックスを 16 の異なるグラフで定義する必要があります。
マトリックスで操作 (data.table::melt、lower.triangle <- NA または is.infinite <- NA) を実行しようとすると、「ベクトルを割り当てることができません...」というエラーが発生しました。 244GiB RAM を搭載した Amazon AWS r3.8xlarge。
私がテストした戦略:
マトリックスの分割とサブマトリックスの溶解: 時間がかかりすぎる (マトリックスごとに 2 日) か、並列にするとメモリが消費される
big.matrix への変換: 時間がかかりすぎる (マトリックスごとに 1 日)
必要なメモリが 2 ~ 3 倍ある場合でもエラーが発生する理由はありますか?このサイズのデータセットに使用する戦略は?
よろしくお願いします!
セッション情報:
ami-b1b0c3c2 ( http://www.louisaslett.com/RStudio_AMI/から)
RStudio 0.99.903
R 3.3.1
r3.8xlarge - インスタンス
私のコード (df_Network には AuthorID と ArticleID の 2 つの列があります):
サンプル データへのリンク: https://www.dropbox.com/s/eaud2np33e5y6iv/df_network_2000-2005.RData?dl=0