問題タブ [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.

0 投票する
2 に答える
679 参照

r - ヘッダー行と最初のデータ行の寸法が一致しません。ビッグマトリックス

私は大規模なデータセットを扱っています。コマンドでそれらのいくつかを読み取ることができますが、そのようなデータセットのためにread.table引数を使用すると、 fill=TRUENA を表す空白がいくつかあります。

現在、最大35 Gbのデータベースがあるため、通常のread.tableコマンドは役に立たないため、パッケージに read.big.matrix 関数を見つけましたbigmemory。問題は、次のエラーが返されることです。

「ヘッダー行と最初のデータ行の寸法が一致しません。」空欄をNAとして読んでいないからだと思います。

どうすればこの問題を解決できるか知っていますか? ありがとう。

0 投票する
1 に答える
529 参照

r - bigmemory パッケージの big.matrix オブジェクトの実際のメモリ サイズを確認するにはどうすればよいですか?

パッケージを使用しbigmemoryて重いデータセットをロードしていますが、オブジェクトのサイズを (関数で) チェックすると、常に664 バイトobject.sizeが返されます。私が理解している限り、重みは従来の R 行列とほぼ同じである必要がありますが、クラス (倍精度または整数) によって異なります。では、なぜ 664 バイトの回答が得られるのでしょうか。以下、再現可能なコード。最初のチャンクは非常に遅いので、シミュレートされる値の数を自由に減らしてください。(10^6 * 20) で十分です。

0 投票する
2 に答える
260 参照

r - RcppのbigmemoryオブジェクトからNAを持つ列を抽出する

Rcpp の big.matrix オブジェクトから列を抽出する関数を作成しようとしています (結果を R に渡す前に cpp で分析できるようにするため)、それを認識させる方法がわかりませんNA (以下の最小限の例に示すように、現在は -2147483648 として表示されています)。関数GetMatrixCols ( src/bigmemory.cpp ) に Rcpp から直接アクセスできればさらに良いのですが、その方法をまだ見つけていません。

0 投票する
0 に答える
249 参照

c++ - Rcpp: テンプレート機能使用時にエラーが発生しました

のさまざまなデータ型に対応するために、biglasso パッケージを改訂していますbig.matrix。現在のバージョンはdoubletype のみをサポートしています。ソースコードはこちらです。

私がしたことは、単純にヘッダーを追加し、を入力として受け取るtemplate関数に必要な変更を加えることでした。big.matrix以下の関数は一例です。xpMatは へのポインタbig.matrixです。

しかし、変更を加えた後、R パッケージはコンパイルに失敗しました。以下はエラーメッセージです。私には、何かcrossprod_bmがうまくいかなかったと書かれています:

誰がバグが何であるか教えてもらえますか? バグは型変換に関連していますか? 計算での型変換は自動でできると思います。

事前にどうもありがとうございました!

[@Coatless に応じて更新]

次のようなディスパッチャがありました。

【更新終了】

【アップデート2】

全体像を確認できるように、すべての変更をGitHubにコミットしました。コメントいただければ幸いです。

【アップデート2】

【アップデート3】

cdfit_gaussian_edpp_cpp戻るべきだと思いますRcpp::List。これを(上記のように)修正しましたが、それでも同様のエラーが発生しました。

私のコードのテンプレートに何か問題があるようです.おそらくテンプレートを定義していますか? テンプレートを呼び出す?

テンプレートを使用しなければ、すべてうまくいきます。たとえば、エラー メッセージでキャプチャされた関数をテンプレート関数ではないものに戻すと、その関数はエラーでキャプチャされなくなります。ただし、次のテンプレート関数は同様のエラー メッセージでキャプチャされます。

一方で、 と を使って例を追ってみましRcppbigmemory。パッケージでテンプレートを使用する方法と同様に、テンプレート関数を次のように変更しました。しかし、それは動作します!!! これは、テンプレートを正しく使用していると思います。

私はここで本当に混乱しており、専門家がバグを指摘できるかどうかに感謝します!! どうもありがとう!

【アップデート3】

0 投票する
0 に答える
531 参照

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