問題タブ [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 - %>% を使用してその場で因子水準を指定する
%>% コマンドのシーケンス内で因子レベルを割り当てるための 1 行のオプションを見つけようとしています。
これを行うための私の戦略は、.
興味のある順序付けられた因子レベルを生成する 関数のシーケンスを実行することでした"Error: 'match' requires vector arguments"
。適切なレベルが得られます。
誰かがこれを行うためのより良い方法を考えたり、私のエラーに光を当てたりできますか?
r - 高カーディナリティの group-by で、dplyr パイプ (%>%) を使用すると、同等の非パイプ式よりも遅いのはなぜですか?
一般的に言えば、使用し%>%
ても速度に目立った影響はないと思いました。ただし、この場合は 4 倍遅くなります。
パイプなし:
パイプ付き:
この状況でなぜ%>%
そんなに遅いのですか?これを書く良い方法はありますか?
編集:
データ フレームを小さくし、Moody_Mudskipper の提案をベンチマークに組み込みました。
r - パイプ (%>%) ggplot2 のような ggvis
を使用してドキュメントに表と図を統合するとknitr
、コードを追加することでより再現性が高く興味深いものになります。
多くの場合、 と を組み合わせるとdplyr
、 (パイプ演算子ggvis
を使用して) 比較的読みやすいコードを持つプロットを作成できます。magrittr
%>
問題は、ggvis プロット:
ggplot2 プロットほどきれいに見えません (私が知っている、因数分解cyl
):
ただし、次のものggplot2
が必要です。
私の問題は、これが配管のためにから%>%
に切り替わることです。+
これは非常に小さなかゆみであることはわかっていますが、次の方法を使用することをお勧めします。
これが機能するように の動作を変更する方法はありggplot2
ますか?
ps。magrittr
'sを使用するという考えは好きではありませんadd()
。これもコードが読みにくくなるためです。
r - パイプと magrittr ドット (.) プレースホルダーの組み合わせ
私は R にかなり慣れていないので、%>%
演算子と " .
" (ドット) プレースホルダーの使用法を理解しようとしています。簡単な例として、次のコードが機能します
ただし、次のコードは失敗します
ここで、プレースホルダーを is.data.frame メソッドにパイプしています。
遅れているのはドットプレースホルダーの制限/解釈の私の理解であると推測していますが、誰でもこれを明確にすることができますか?
r - 最初の引数が LHS ではない Magritttr + lapply
を介してデータ フレームを lapply に渡したいのです%>%
が、列の名前にアクセスできるようにする必要があるため、lapply 引数は次のようになります。
ただし、それを試してみると、次のエラーが表示されます。
私が知る限り、Rとlapplyは好きではありません1:length(.)
。有効なオプションはチェーンを壊すことだと思いますが、それを適切に行う方法を学びたいです。
r - の使用!(または任意の論理演算子) %>% (magrittr) で予期しない出力が生成される
%>%
と組み合わせると、非常に驚くべき出力が生成される状況に遭遇しました!
。次のコードを検討してください。
わかりました、驚くべきことは何もありません。%>%
しかし、奇妙なことを使用して短縮しようとすると、次のことが起こります。
TRUE
?? 私が期待したものではありません-そうあるべきです20
。
を削除する!
と、期待どおりに表示されます0
:
括弧を追加すると動作します:
関数として扱う!
と次のようになります。
ではなく!is.na(x) %>% sum
、なぜそれが返されるのですか?TRUE
20
編集:他の論理演算子は同様の動作を生成します:
r - 引数がドットをパイプする関数にデータ フレームをパイプする
引数がドットをパイプする関数にデータフレームをパイプするにはどうすればよいですか?
rep(xi, length.out = nvar) のエラー: タイプ「クロージャ」のオブジェクトを複製しようとしています
もう一つの例:
次のコンポーネントによる機能シーケンス:
- アレンジ(., メーカー)
'functions' を使用して個々の関数を抽出します。