問題タブ [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 に答える
1452 参照

r - plyr/dplyr/purrr を使用してデータ フレームに複数の列を追加する方法

カスタム関数を使用して、できれば並列化を使用して、一度に複数の列を追加してデータ フレームを変更する必要があることがよくあります。以下は、私がすでにこれを行う方法を知っている方法です。

設定

2 つの新しい列 とfoocol = x + yが必要であるとしますbarcol = (x + y) * 100が、これらは実際にはカスタム関数で実行される複雑な計算です。

方法 1: と を使用して列を個別に追加rowwiseするmutate

これは、各行に対して 2 つの関数呼び出しと の 2 つの「高価な」計算が必要になるため、適切な解決策ではありませんx + y。また、並列化されていません。

方法 2:ddply行単位の操作にだます

ここでは、作成したばかりddplyの一意の列で分割することにより、各行で関数を呼び出すようにトリックします。idただし、これは扱いにくく、役に立たない列を維持する必要があります。

方法 3:splat

df配列の理解なしでカスタム関数 (必要に応じて匿名にすることができます)の列を参照できるため、このソリューションが気に入っています。ただし、このメソッドは並列化されていません。

方法 4:by_row

purrrby_row関数により一意の列が不要になりますが、この操作は並列化されません。id

方法 5:pmap_df

これは私が見つけた最良の選択肢です。関数ファミリはpmap、引数に適用する無名関数も受け入れます。pmap_dfただし、リストに変換して元に戻すと思うdfので、パフォーマンスが低下する可能性があります。

行オブジェクトfunction(x, y, ...)だけでなく、関数定義で計算に使用する予定のすべての列を参照する必要があるのも少し面倒です。function(r)


良いまたはより良いオプションがありませんか?私が説明した方法に懸念はありますか?

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

r - 予測のための dplyr:: do vs purrr: map、tidy::nest の使用に関するアドバイス

私は purrr パッケージに出くわしましたが、これは私がやりたいことに関して少し役立つと思います-私はそれをまとめることができません.

これは投稿に沿って進むと思いますが、他の多くの人が遭遇すると思う一般的なユースケースについて説明しているので、これが彼らにも役立つことを願っています.

これは私が目指しているものです:

  1. 1 つの大きなデータセットから、異なるサブグループごとに複数のモデルを実行します。
  2. これらのモデルをすぐに利用できるようにして、係数、精度などを調べられるようにします。
  3. 異なるグループごとに保存されたこのモデル リストから、対応するモデルを対応するテスト セット グループに適用できます。
  1. ここまで来ましたが、対応するモデルを、対応するグループ化された値の「テスト」データセットに「マップ」する方法がわかりません。
  2. ここで、対応するグループのトレーニング データを使用して、linear_model1 または linear_model2 のトレーニングから残差を取得しようとしている可能性もあります。

models$linear_model1[[2]]$residuals は、model1 の 2 番目のグループ化の残差を表示します。すべての models$linear_model1 $residuals をトレーニング データセットに移動する方法がわかりません。

私の理解では、tidyr の nest() 関数は、モデルの do() create を作成したときに発生するのと同じことを行っています。

繰り返しますが、これらの残差/トレーニング予測をトレーニング データセットに簡単に「マッピング」できる方法を探してから、対応するモデルを上で作成したような目に見えないテスト データセットに適用します。

ここには多くの約束があるので、それをまとめる方法がわかりません。

これは、多くの人がこのより「自動化された」方法で実行できるようにしたいと考えているタスクですが、代わりに、人々は非常にゆっくりと段階的に実行するものだと思います.

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

r - map() を使用して R のリストから複数の項目を抽出することは可能ですか?

purrr パッケージのさまざまなmap()関数を使用して、整数または文字列を関数に渡し、サブリストから要素を抽出できます。これらは、私が期待するとおりに機能します。

私の質問は、このリストから複数の要素を抽出するにはどうすればよいですか? AとBから「沈黙」、AとBから「猫」と「魚の頭」(つまり、AとBの両方の要素1と2)が必要な場合、それは可能map()ですか?そうでない場合、これを行う最善の方法は何ですか?

これが私がうまくいくと思っていたものです:

1 は各サブリストの最初の要素を参照し、2 は 2 番目の要素を参照します。しかし、これは上記の と同じものを返しますlist1。ネストされた構造 (つまり ) を参照するため、使用c(1, 2)は機能しません[[1]][[2]]。ドキュメントと Google で見つけたいくつかの例に目を通しましたが、うまくいきませんでした。何か案は?

更新: 理想的には、「沈黙」のように名前で要素を選択できるようにしたいと説明する必要があります。ただし、これはあまりうまく機能していないようです。(必要な要素の位置が変わる大きなリストがいくつかあります)

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

r - Generating Coin flips using purrr

Now I'm learning how to use purrr package in r, and thinking about how to generate 5 samples of each 1, 2, ..., 99, 100 coin flips. My image is to create a list, that should look like..

Can anyone help me make this up?

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

json - 解析エラー: データ フレーム内の JSON 列を解析しようとしたときの "Trailing Garbage"

次のようなログ ファイルがあります。これは、次のようなテキスト ドキュメントです。

Message次の方法で、列の JSON を解析しようとしています。

しかし、次のエラーが発生します。

「末尾のゴミ」を取り除くにはどうすればよいですか?