グループ化されたarrange()関数に依存するdplyr 0.4.3で書かれたコードがたくさんあります。 0.5リリースの時点で、アレンジはグループ化を適用しなくなりました。dplyr 0.5:グループ化を使用してアレンジ()
この決定は、他のdplyr動詞と矛盾しているため、私はうんざりしています。グループを解除する必要がある場合は、必ず事前にungroup()することができます。私は、おそらくgrouped_byの動作を保持するための配列()のパラメータを期待していたでしょうが、悲しいかな!
したがって、グループ化されたアレンジを書き直す必要があります。この時点で、私の唯一の選択肢は、アレンジコールでパイプを分割し、グループをループし、グループ別にグループを整理し、結果を再度バインドすることです。私はより洗練されたソリューションがあると思っていますか?
以下はMREです。group_by(cyl)ごとにwtでcumsumを実行したいと思います。アイデアや提案に感謝します。
library(dplyr)
mtcars %>%
group_by(cyl) %>%
arrange(desc(mpg)) %>%
mutate(WtCum = cumsum(wt))
グループ化する前に「整理したい」と言っていますか? '0.5.0'を使ってあなたのコードを実行することに基づいて、私はcyの各グループ内で降順に 'mpg'を得ます。 – akrun
@akrun - あなたは正解です、そしてありがとう。その場合、私は明らかに[リリースノート](https://github.com/hadley/dplyr/releases)を誤解していました。最初の注釈をどのように解釈しますか:「グループ化をもう一度無視する」 – csrvermaak
パイプの終わりでデータセット全体を '表示 'すると、事実が私に「円筒」で表示されません。それは近いですが、シリンダーの数はmpgと非常に関連しているからです。グループ内でアレンジするには、アレンジ内にグループ化変数を追加します。この例では 'mtcars%>%group_by(cyl)%>%arrange(cyl、desc(mpg))'のようになります。 – aosmith