問題タブ [magrittr]
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 - dplyr を使用して data.frame 内の完全なケースをフィルター処理します (ケースごとの削除)
dplyr を使用して完全なケースの data.frame をフィルタリングすることは可能ですか? complete.cases
もちろん、すべての変数のリストで動作します。しかし、それは a) 変数が多い場合は冗長であり、b) 変数名が不明な場合 (たとえば、任意の data.frame を処理する関数内) は不可能です。
r - 関数引数を dplyr select に渡す
私ができるデータフレームからいくつかの列を選択するには
次のような関数を書きたい
しかし、実行f(df, col1, col2)
するとエラーが発生します
編集- 少し些細な例:
やりたかったとします。
ただし、データセットと変数名が異なります。mtcars
コードを再利用して、、、cyl
およびを置き換えることができhp
ます。しかし、私はむしろそれをすべて関数にラップしたいと思います
r - %.% (dplyr) と %>% (magrittr) の違い
このdplyr
パッケージ%.%
では、*NIX パイプと同様に、右側の関数の引数として左側を渡す演算子が導入されました。このmagrittr
パッケージは、そのパイプのような演算子のみを定義するために存在する、はるかに軽量なパッケージです。
しかし、一方は使用%.%
し、もう一方は%>%
.
両者に違いはありますか?%>%
コードでも使用できますかdplyr
、それとも微妙なバグが発生しますか?
コードを調べると、早い段階で非常に異なるパスをたどるので、単純な目で比較すると、それらが異なることが示唆されます。Web を検索しても文書化されたものは何も見つかりませんでしたし、文書自体にも何も出くわしませんでした。
r - transform と %>% を使用して新しい変数を作成する
ベクターに基づいて、「パイプのような」演算子を使用して、データフレーム内の他の変数と同じ長さの新しい変数を作成しようとしていますLETTERS
。magrittr
何かがうまくいかず、問題を診断するには新人すぎます。
「伝統的な」ネストされた関数を試してみると、変数を正しく作成できます。
%>%
それで、パイプのようなfrommagrittr
とを試してみようと思いましたdplyr
[
これは、次のエイリアスから抽出 () 関数を追加しても機能しませんmagrittr
。
debug_pipe
無駄にパイプをデバッグしようとしました。どんなアイデアにもとても感謝しています!
r - %>% キーバインド / Rstudio のキーボードショートカット
私は、パッケージ%>%
からますます人気が高まっているオペレーターをかなり試してきました。magrittr
入力を節約するためにキーボードショートカットを設定するのに十分使用しました。
shift+ command+ 、+ 、+ 、+ 、.の代わりに。spaceshift5shift.shift5space
これはSublimeTetxt2では優れていますが、 Rstudio プロジェクト内で作業している場合、 Rstudioはサービスを許可しません。
だから私の質問は:
Rstudio内でテキスト挿入キーバインディングまたはショートカットを定義できますか?
これは、カワウソにとって酸素である代入演算子のalt+バインディングとまったく同義です。-<-
誰かが github リポジトリでショートカットがコード化されている場所を教えてくれれば、自分のショートカットを「ハック」できるので、これは便利な出発点になると思います。
r - パイプ演算子がチェーンの最後 (または最初) であるかどうかをどのように判断できますか?
私は最近、 の素晴らしいpipe_with()
機能を使用して、独自のパイプを作成して遊んでいmagittr
ます。現在のチェーン内のパイプの数を追跡しようとしています (したがって、パイプはチェーン内の位置に応じて異なる動作をする可能性があります)。magrittr
githubページのこの例で答えがあると思いました:
左側の数字はパイプ番号です。ただし、同じチェーンを再度実行すると、数値は 1 から再開されません。
これはおそらく、最初の の使用によって作成されたローカル環境が、チェーン%L>%
の最後の実行時に破棄されないためです。%L>%
そのため、(セッションの最初のパイプ以降だけでなく) 現在のチェーン内のパイプの位置を知るには、チェーンが終了したときにカウント変数を 0 に戻す (または変数をリセットする) 方法が必要です。ローカル環境)。
これを行う方法について誰かアイデアがありますか?
r - 配管チェーンのインプレイス修正
のパイピング チェーン内でいくつかのオブジェクトをオンザフライで変更しようとしていますmagrittr
。初挑戦:
を使用した短いオプションl
:
ラムダを定義しなくても同じことが可能かどうか知りたいです。それを行う最短の方法は何ですか?そのために代入演算子<-
とプレースホルダーを使用できます.
か? に似たもの(読みやすさに注意してください)
最後の結果が自然であることは理解しています (演算子は目に見えない値を返します)。どうすればそれを回避できますか?