問題タブ [dplyr]
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 select に渡す
私ができるデータフレームからいくつかの列を選択するには
次のような関数を書きたい
しかし、実行f(df, col1, col2)
するとエラーが発生します
編集- 少し些細な例:
やりたかったとします。
ただし、データセットと変数名が異なります。mtcars
コードを再利用して、、、cyl
およびを置き換えることができhp
ます。しかし、私はむしろそれをすべて関数にラップしたいと思います
r - 「dplyr」と「data.table」を使用した tall データの「spread= a - b」計算
私はいくつかの(金融時系列)データを背の高い形式で持っています:
DT
共通の行ごとspread
に3 番目の変数を計算したいと思います(基本的には、2 つの時系列間のスプレッド - 金融ドメインでの共通の変換)。spread = a - b
Date
望ましい出力:
dcast.data.table
データをワイド形式 (つまり、列を含むテーブル) に変換するときの解決策を知っていますが、大きなデータでのパフォーマンスの問題により、a)と b)c("Date", "a", "b")
を使用してトール形式で直接これを行うエレガントな方法はありますか( 2 部構成の質問)?dplyr
data.table
理想的には、 のdplyr
ような表現力のあるものを探していmutate(tbl_dt(DT, tall=TRUE), spread=a-b)
ます。(免責事項: 私は完全な初心者ですdplyr
)
実際のデータセット:
r - dplyr を使用して重複行を削除する
私はこのようなdata.frameを持っています -
最初の 2 列に基づいて重複行を削除したいと思います。期待される出力 -
dplyr
特にパッケージを使用したソリューションを探しています。
r - クラスdata.frameを出力するdplyr
dplyr
次のようにデータフレームを要約できます。
出力を class に変換するためのdata.frame
現在のアプローチは次のとおりです。
を使用せずにdplyr
クラスを出力する方法はありますか?data.frame
as.data.frame
r - dplyr は、グループ化列と計算列のみを返します
これを行う方法があるかどうか疑問に思っています:
select
ビットをスキップしながら。私は以下がうまくいくはずだと思った(しかし、多くの理由でうまくいかない):
この例では、単独で実行できることを期待してmutate
に置き換えたことに注意してください。式が 1 つの値を返すことを期待select
しているため、これも機能しません。summarize
data.table
明らかに、大したことではありませんが、デフォルトの動作を複製する簡単な方法があるかどうか疑問に思っています。
by
列と計算された値だけを生成します。
r - sum(!is.na(Field1) + !is.na(Field2)...) を合計する dplyr 式が間違った数値を与える
各行の非NAの数によってdplyrで要約(/変異)しようとしています...間違った答えを出し続けています。
ブール値の算術演算sum(FALSE + TRUE + FALSE + TRUE + TRUE)
は実際に 3 になりますが、問題はどこにあるのでしょうか? dplyr がエラーをキャッチしないのはなぜですか?
グレーコードでデバッグすると、!is.na()
Field1 を除いてすべての s が異常に動作することがわかります。
16 または 0 しか返さない
r - dplyr と plyr で同じように作業を要約しないのはなぜですか?
dplyr::summarize のサンプル コードを実行していますが、期待した結果が得られません。
何が起きてる?
r - group_byからgroup-numberでデータテーブルに番号を付ける/ラベルを付ける方法は?
group_by(u, v)
で観測された個別の整数の組み合わせごとに必要な tbl_df があり(u, v)
ます。
編集:group_indices()
これは、dplyr 0.4.0に (現在は廃止された) を追加することで解決されました。
a) 次に、各個別グループに任意の個別番号 label=1,2,3 を割り当てたい... たとえば、組み合わせ (u,v)==(2,3) はラベル 1 を取得でき、(1,3) は2 などを取得します。mutate()
3ステップの要約と自己結合なしで、1つでこれを行う方法は?
dplyr にはきちんとした関数がありますが、それはグループ全体の数ではなく、そのグループ内n()
の要素の数を示します。これでは単に と呼ばれます。data.table
.GRP
b)実際に文字列/文字ラベル(「A」、「B」、...)を割り当てたいもの。しかし、以下のように使用できるので、整数によるグループの番号付けで十分integer_to_label(i)
です。これら2つをマージする賢い方法がない限り? しかし、この部分を気にしないでください。