問題タブ [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 で複数の列を要約しますか?
dplyr-syntax に少し苦労しています。さまざまな変数と 1 つのグループ化変数を持つデータ フレームがあります。ここで、R で dplyr を使用して、各グループ内の各列の平均を計算したいと思います。
これにより、「grp」で示される各グループの列「a」の平均が得られます。
私の質問は、各グループ内の各列の平均を一度に取得することは可能ですか? df %>% group_by(grp) %>% summarise(mean(a))
または、列ごとに繰り返す必要がありますか?
私が持ちたいのは次のようなものです
r - group_by (複数の変数) を使用する場合の dplyr の問題
ddply の代わりに dplyr の使用を開始したいのですが、それがどのように機能するかを理解できません (ドキュメントを読みました)。
たとえば、何かを mutate() しようとすると、「group_by」関数が想定どおりに機能しないのはなぜですか?
mtcars を見る:
図書館(車)
「cyl」と「gear」でグループ化された mtcars の要約である data.frame を作成するとします。
次に、このデータフレームをさらに要約したいとします。ddply を使用すると簡単ですが、dplyr を使用しようとすると、実際には「グループ化」されません。
グループ化されていない出力が得られます。
構文に何か問題がありますか?
編集:
これを plyr と ddply で行う場合:
次に、2 番目の df を取得します。
しかし、summarise() 関数で sum(newvar) + 5 を使用した同じアプローチは、dplyr では機能しません...
r - Rで2つの要因で数値変数を要約する方法
3 つの変数と 1.425.558 の観測値を持つ data.frame があります。再生可能エネルギー発電所からの設置電力の記録です。各行は、設置された 1 つの発電所を表します。郵便番号エリアには同じタイプの発電所が複数存在する場合があります。
太陽光発電/バイオガス/風力発電がどれくらい設置されているかを郵便番号で合計したいと思います。
私はすでに試しました
しかし、私のRAMは十分ではありませんでした。
私のデータフレームは非常に大きいです。「2」で始まる郵便番号のデータのみが必要なので、かなり絞り込むことができました。
解決策を教えていただけますか?初心者を助けてくれてありがとう!
r - mutate は参照によって tbl を変更しますか?
私が本当に気に入ってdata.table
いるのは、:=
コストのかかるコピーを必要とせずに、参照によってテーブルを変更するイディオムです。私が理解していることから、これはdata.table
他の方法と比較して非常に高速になる側面の1つです。
dplyr
さて、同じようにパフォーマンスが高いと思われるパッケージをいじり始めました。しかし、<-
演算子を使用して結果を割り当てる必要があるため、このレベルではパフォーマンスが低下すると予想していました。ただし、ないようです。
例として:
どうすればこれが可能になるのだろうか?または、ベンチマークの方法に概念上の誤りがありますか? 私の理解は<-
間違っていますか?
r - dplyr チェーンの NA を置き換えます
質問は元から編集されています。
この興味深い議論を読んだ後、たとえば、Lahman のバッティング データで dplyr を使用して列の NA を置き換える方法を考えていました。
以下は私が期待したように動作しません
ソース: ローカル データ フレーム [20 x 3] グループ: yearID、teamID
実際、それはグループ平均ではなく、全体平均を帰属させました。dplyrチェーンでこれをどのように行いますか? transform
ベースRからの使用も、グループ平均ではなく全体平均を帰属させるため機能しません。また、このアプローチはデータを通常のデータに変換します。フレーム。これを行うより良い方法はありますか?
編集:に置き換えるtransform
とmutate
、次のエラーが発生します
編集: as.integer を追加すると、エラーが解決され、期待される結果が得られるようです。@eddiの回答も参照してください。
編集:@ Romainのコメントをフォローアップして、githubからdplyrをインストールしました:
そのため、エラーは発生しませんでしたが (良い)、(一見) 奇妙な結果が得られました。
r - 順序を失うことなく dplyr を変更するにはどうすればよいですか?
I を使用data.table
すると、次のことができます。
ただし、同じ操作を試みるとdplyr
、データは次のようにスクランブル/ソートされa
ます:
(余談ですが、上記は元の もソートしますが、その場で変更しないという の哲学をdt
考えると、私にとってはやや混乱します-それは とのインターフェースdplyr
方法のバグだと思います)dplyr
data.table
dplyr
上記を達成する方法は何ですか?
r - 単一の dplyr ステートメントでグループ化変数を切り替えることはできますか?
この問題を説明する簡単な例を次に示します。
最初は永続的であり、グループ化は と の両方によるため、 Iで同じことをしようとするdplyr
と失敗します:group_by
b
c
これはバグですか、それとも機能ですか? それが機能である場合data.table
、単一のステートメントでソリューションをどのように複製しますか?
r - 長さが 1 に等しくない、またはグループの長さが dplyr に等しくないグループ化された演算
次のことを行うためにどの関数を使用すればよいかわかりません。
summarise
との両方mutate
がこの長さに不満を持っています: