問題タブ [tidyverse]
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 - 標準評価と do_ を使用して、do.call を使用せずにパラメーターのグリッドでシミュレーションを実行する
目標
dplyr を使用して、パラメーターのグリッドでシミュレーションを実行したいと考えています。具体的には、別のプログラムで使用できる機能が欲しい
- data.frame が渡されます
- 行ごとに、各列を引数として使用してシミュレーションを計算します
- また、いくつかの追加データ (初期条件など) が渡されます。
これが私のアプローチです
これは機能します。たとえば、
定義して実行できます
質問
これは機能しているように見えますが、 なしでそれを行う方法があるのだろうかdo.call
. (一部には do.call の問題もあります。)
grouped_out <- do_(rowwise(data), ~ do.call(fun, c(., fixed_parameters, ...)))
この行を、同じことを行うが なしの何かに置き換える方法に本当に興味がありdo.call
ます。編集:do.call
上記のリンクで概説されている使用によるパフォーマンスの低下を何らかの形で回避するアプローチも機能します。
注意事項と参考文献
- do.call と dplyr の標準評価に関するこの質問は役に立ちますが、可能であれば do.call を回避する方法を探しています
- dplyr のnse vignetteは、これを書くのに役立ちました。
.values
代わりに働くことができると私に思わせますdo.call
r - tidyverse で融解した反復的にマッピングされたリストに名前を付ける
私はしばしばループ内でループを行い、最後にリストをデータフレームに溶かしてグラフ化します。
Q1: に頼らずにマップ内でマップを実行する別の方法はありますか?function(y)
ただし、私のリストには名前が付いていないことが多いため、次のようにリストの値を名前として追加する傾向があります。
結果の df には名前 L2 と L1 があり、名前がそれぞれ ca と ac であることが望ましいと思います。
nam.cons
変数をリセットするのを忘れると、これはすぐに面倒になります。これの 1,2,3,4..n バージョンを別々の関数で作成できますが、
Q2: n 個の異なるリストのループを受け入れ、最後に n 個の異なるリスト名を列名として保持する1 つのMelt_map 関数を作成することは可能ですか?
r - tidyverseで列をそれ自体にネストする方法
なぜこれはリスト列「am」を生成するのですか?
だがしかし:
エラー: STRSXP と互換性がありません
これは少し不自然な例ですが、私が取り組んでいることに関連しています。mutate はその環境外にスコープを設定しませんか?
r - リスト列のあるティブル: 可能であれば配列に変換
私は次のようにティブルを持っています:
すべての要素が同じ長さとタイプである「ShouldBeCharacter」のような列を「IsCharacter」のような列に変換し、残りの列はそのままにしておきたいと思います。
これまでのところ、問題を解決する次の関数がありますが、かなりハックに見えます。私が考えていないより良い解決策があるかどうか知りたいです:
これが私が得た結果です。ShouldBeCharacter のタイプがどのように変更されたかに注意してください。
このas_tibble(lapply(as.list(... do.call(c,...)))
行は私には複雑すぎるように見えますが、より単純な代替案が見つかりません。
lists_to_atomic
関数の信頼性を高める簡素化はありますか?
アップデート
tidyr::unnest
リスト型の列と長さ1の要素を使用することは考えていませんでしたが、@taavi-pの回答に従って、関数をこれに単純化することができました:
r - tidyr::pop_quiz: anscombe データセットを再形成するためのより高速で透過的な方法はありますか?
上手になろうとしていtidyr
ます。anscombe
でプロットするためにデータセットを準備するより良い方法はありggplot2
ますか? 具体的には、データを追加する必要がありません ( obs_num
)。これをどのように行いますか?