問題タブ [purrr]

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 投票する
1 に答える
448 参照

r - unnest の結果を tidyr で組み合わせる方法は?

データ

目的

segmented区分的線形回帰の関数を適用します。最初tidyr::nestにデータセットを ing してからpurrrpackage を使用した後にそれを行いました。最後に unnested、目的の出力を取得します。コードは次のとおりです。

望ましい出力:

基本的にpsiは、変更xslopeです。したがって、次の出力が必要です。

upこれら 3 つのデータセット ( 、usおよびud) を上記の方法で組み合わせるにはどうすればよいですか? dfおもちゃのデータセットであることに注意してください。オリジナルdfには何百ものoS、つまり A、B がありxます。ydf

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

r - Purrr と Dplyr を使用した複数のデータ フレームにわたる同様の因子レベルの再コーディング

以下は、2 つの単純なデータ フレームです。すべての満足度が として単純にコード化され、すべての不満足度がとしてコード化されるように、Sat1および列を再コード化 (折りたたみ) したいと思います。ニュートラルはニュートラルのままです。したがって、これらの要因には 3 つのレベルがあります。Sat2SatisfiedDissatisfiedSatisfied, Dissatisfied, and Neutral

私は通常、データ フレームをバインドし、次のようにパッケージlapplyから再コード化して使用することでこれを実現します。car

特に(データフレームを維持するために)マップ関数を使用してこれを達成したいと思いますat_mapが、私はpurrrマップの他のバージョンを提案するのは初めてなので、tidyr stringr ggplot2`purrrだけでなく、すべてを簡単にパイプライン処理できるようにします.dplyr,and

以下の例は、私が達成したいことですが、再コーディング用ですが、機能させることができませんでした。

http://www.r-bloggers.com/using-purrr-with-dplyr/

Sat1との元の列を保持できるように、at_map または同様のマップ関数を使用したいSat2ので、再コード化された列がデータ フレームに追加され、名前が変更されます。このステップも関数内に含めることができれば素晴らしいことです。

実際には、多くのデータ フレームがあるため、因子レベルを 1 回だけ再コード化し、関数をpurrr使用して、最小限のコードですべてのデータ フレームを変更します。

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

r - 「dmap_if」と「model.matrix」を一緒に

Arthritisパッケージのデータ セットを使用vcdして、1 つのホット エンコーディングを実行しています。purrr::dmap_ifこれを行うには、 and をMatrix::model.matrix一緒に使用したいと思います。私が走るとき

正常に動作しています。

以下のコードを使用すると機能しません

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

r - 収束の失敗時にRが自動的にブラウザモードに入るのはなぜですか?

R でシミュレーションベースの電力分析を行っています。R を RStudio (0.98.932) で実行し、関数plyr::rdplyとを使用してlme4::glmer、それぞれデータを生成し、モデルを適合させます (R 環境とパッケージ バージョンについては、以下の再現可能な例の最後を参照してください)。 )。

手順は、特定のパラメーター化のデータセットをランダムに生成し、それにモデルを適合させることです。ただし、時々、モデルは収束に失敗します。これが発生すると、次の警告が表示されます

[1]「スケーリングされた勾配を評価できません」
[2]「モデルは収束に失敗しました: 1 つの負の固有値を持つ縮退ヘッセ行列」

R はブラウザ モードに入りc、シミュレーション ループに戻るには手動で介入する必要があります (たとえば、 を押します)。数日間にわたって何千もの反復を実行する必要があるため、これは本当に苦痛ですが、この特定の収束エラーが発生するたびに、キーを押すまで停止します。

Rがブラウザモードに入らないようにする方法はありますか? 各シミュレーションで発生するすべての警告を保存するので、唯一の問題は、この特定の収束エラーが発生したときに手動で介入しなければならないことです。purrr::quietly関数と関数を使用してみましpurrr::safelyたが、成功しませんでした (以下のコードの例を参照)。

これは私のコンピューターで動作するMWEです(set.seed再現性のために使用しているので、パッケージのバージョンなどに関係なく同じ結果になることを願っています)。この例では、同じロジックを適用しますが、実際のシミュレーションで使用するのとは異なり、より単純なパラメーター化を適用します。

更新 (r2evans のコメントに基づく)

両方のコンピューターoptions("error")で利回り

(関数 () { .rs.breakOnError(TRUE) })()

これはある種の RStudio のデフォルトのようであり、実際にstop()呼び出しが発生したときに R をブラウザー モードにするようです (これは、メニュー ツールバーの [デバッグ] > [エラー時] > ... を介してグラフィカル インターフェイスで変更できることがわかります)。とにかく、設定するoptions(error = NULL)と、問題はなくなります。これは、うまく機能する新しい (簡略化された) 例です (この最小限の例でも、実際のシミュレーションに適用された場合でも)。

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

r - R - 複数のモデル学習の並列化 (dplyr と purrr を使用)

これは、複数のモデルの学習に関する以前の質問へのフォロー アップです。

ユースケースは、被験者ごとに複数の観測があり、それぞれのモデルをトレーニングしたいというものです。これを行う方法については、 Hadley の優れたプレゼンテーションを参照してください。

要するに、これは次のように使用して行うことができdplyrますpurrr

したがって、モデルの構築は恥ずかしいほど並列タスクであるため、そのようなタスク用の使いやすい並列化メカニズム ( parallel など) があるかどうか疑問dplyrに思っていました。purrrmap

これらのライブラリが簡単な並列化を提供しない場合、従来の R 並列化ライブラリ ( など) を使用して実行できparallelますforeachか?

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

r - dplyr を使用してリストからオブジェクトを抽出する

これは、質問12に関連しています。

次のコマンドを実行して返されるオブジェクトのリストがあります (私の場合、それらはリスト AFAII でもあります)。

はによって作成されmodelsたモデルのリストで、は各モデルの適合度統計を計算する関数です。fitdistrplusgof_stats

そのリストから特定の統計を抽出したい場合は、次のようにすることができます。

クラマー・フォン・ミーゼスのステータスを取得します。次のように、リスト全体で(リンクされた質問に従って)同じことを達成できます。

dplyr/purrr構文を使用して同じことを行う方法はありますか?

modelsボーナス:リスト内の要素の一部が である場合、どのように処理しますNULLか?