問題タブ [plyr]
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.
performance - R: 「group by」操作の高速化
中央に巨大な集計と結合のステップがあるシミュレーションがあります。私は、plyr の ddply() 関数を使用して、このプロセスのプロトタイプを作成しました。これは、私のニーズの大部分でうまく機能します。しかし、10K のシミュレーションを実行する必要があるため、この集約ステップを高速化する必要があります。すでにシミュレーションを並行してスケーリングしていますが、この 1 ステップが速ければ、必要なノードの数を大幅に減らすことができます。
これが私がやろうとしていることの合理的な単純化です:
すべてのヒントや提案を歓迎します!
r - 文字列変数を使用してddplyの変数リストを作成するにはどうすればよいですか?
Rの組み込みのToothGrowthサンプルデータセットを使用すると、これは機能します。
しかし、サブセット化要素を変数にしたいのですが、
それはうまくいきません。これはどのように行う必要がありますか?
私はおそらくこのようなことを考えました:
しかし、それも機能しません。私は近くにいると思いますが、それを行う適切な方法がわかりません。コマンド全体を文字列に入れてから、文字列のeval()呼び出しを行うことができると思いますが、もっとエレガントな方法があるといいのですが。
r - クラス範囲のリストでデータフレームを分類または切り出し、ddply で要約する
ddply とサブセットについて質問があります。
次のようなデータフレーム df があります。
第一歩 :
次のような cut_interval を使用した等間隔のリストがあります。
だから私はここに2つのレベルがあります: [0,10) と (10,20]
ステップ2 :
各グループ/クラスを v_cut の 2 つのレベルで定義したい ... 次のように:
ステップ 3 :
各グループv_cutのx軸のv_rankとy軸の時間の変動性を知りたいので、次のような方法でv_rank値のmin、mean、max、sdを計算する必要があります
*求める結果 : *
私の問題
ステップ 1 -> ステップ 2 を通過する方法がわかりません:/
そして、ステップ 3 の例のように v_cut でグループ化できる場合は?
ddply の「サブセット」オプションで同じことを行う可能性はありますか?
もう一度、偉大な R グルの助けに感謝します !
更新 1:
step1 から step2 に進むための答えがあります。
私はplyrを使用していますが、この場合、おそらくより良い答えがありますか?
ステップ 2 からステップ 3 に進むには、答えてください。
更新 2:
Brandon Bertelsen は、melt + cast で良い答えをくれましたが、(理解するために) plyr と ddply で同じ操作を行いたいのですが、結果は異なります:
私はこのようなものを試しています:
しかし、sumData データフレームに v_cut を入れたいのですが、どうすれば ddply を使用できますか? これを作るオプションはありますか?または、最初の df と key = v_idn をマージして v_cut 列を sumData に追加するのが唯一の良い答えですか?
r - reshape / plyrを使用してデータを要約するにはどうすればよいですか?
私は次のようなデータを持っています:
このデータセットには、54の一意のモデルを持つ40,000行があります。
アスペクトx輪郭xカバーの組み合わせで各モデルが何回発生するかを示す要約データセットを取得するにはどうすればよいですか?
r - この R コードを高速化する方法
次のように変換する 18 列と 11520 行の data.frame (ファイルへのリンク) があります。
system.time() によると、実行にはこの程度の時間がかかります。
この呼び出しは webapp の一部であるため、実行時間は非常に重要です。この呼び出しを高速化する方法はありますか?
performance - idata.frame:エラー「is.data.frame(df)がTRUEではない」のはなぜですか?
私はRでexp(ここにファイル)と呼ばれる大きなデータフレームを使用しています。パフォーマンスの観点から、plyrからidata.frame()関数をチェックアウトすることをお勧めします。しかし、私はそれを間違って使用していると思います。
私の元の呼び出しは遅いですが、機能します:
idata.frameを使用すると、Error: is.data.frame(df) is not TRUE
だから、多分それは私のデータだと思いました。そこで、baseball
データセットを試しました。このidata.frame
例は正常に機能します。dlply(idata.frame(baseball), "id", nrow)
ただし、を使用して目的の呼び出しに似たものを試してみるとbaseball
、機能しません。
おそらく私のエラーは、グループ化を指定する方法にありますか?誰かが私の例を機能させる方法を知っていますか?
ETA:
私も試しました:
これは中央値を取得するためのより高速な方法を使用しますが、別のエラーが発生します。idata.frameの使い方がよくわからないと思います。
r - マージ中に R の plyr が非常に遅い
Rでplyrパッケージを使用して、次のことを行っています。
- 列 A と列 B に従ってテーブル A から行を取り出す
- 列 A と列 B に同じ値を持つテーブル B の行を見つける
- 列 C をテーブル B からテーブル A にコピーする
進行状況を表示する進行状況バーを作成しましたが、100% になった後もまだ実行されているように見えます。CPU がまだ RGUI によって占有されていることがわかりますが、終了しません。
私のテーブルAには、一意の列Aと列Bを持つ約40000行のデータがあります.
plyr の「split-conquer-combine」ワークフローの「combine」部分では、この 40000 行のデータを処理できないと思われます。これは、4000 行のデータを持つ別のテーブルに対して処理できるためです。
効率を改善するための提案はありますか?ありがとう。
アップデート
これが私のコードです:
r - Rを使用した入院データの処理(パートII)
Rを使用した入院データの質問処理に関する提案を提供してくれてありがとう。この問題について追加の質問があります。実際、それはその質問の前のタスクであるはずです。
これで、次のようなデータセットができました。
私はそれを次のように変換する必要があります:
現在、私はそれを使用して変換しましたddply
、コードは以下に添付されています:
unique(Patients_ID)
これで問題を解決できますが、データセットに8818と1861がある場合は、非常に遅くなります(P4 3.2マシンでは20分以上)unique(Date)
。どうすればそれを改善できますか?ありがとう!
r - ddply : 押すか引くか?
データをグループ化するとき、ddply はプッシュまたはプルしますか? つまり、データ フレーム上で多くのパスが必要ですか、それとも 1 つだけですか?
r - データセットの欠落している「穴」を埋める
私はこのようなデータセットを持っています:
同じ患者からのラボデータがいくつかありますが、ラボデータの中には本来あるべき退院日が記載されていないものもあります。そして、私はそれらに不足している除隊日を入れる必要があります、現在私は次のコードを使用しています:
しかし、これは非常に遅いです(データセットには70527の一意のpatient_idを持つ92528行があります)、どうすれば高速化できますか?ありがとう。