У меня есть много кода, написанного в dplyr 0.4.3, который опирался на сгруппированную функцию arr(). Начиная с релиза 0.5, организация больше не применяет группировку.dplyr 0.5: аранжировать() с помощью группировок
Это решение меня озадачивает, так как это делает аранжировку() несовместимой с другими глаголами dplyr, и, конечно, пользователь может просто разгруппировать(), прежде чем аранжировать(), если требуется разгруппировать. Я бы надеялся, что, возможно, параметр в расположении() сохранит групповое поведение, но, увы!
Поэтому я должен переписать свою группировку. На данный момент мой единственный вариант заключается в том, чтобы разбить трубку на аранжировщике, перебрать группы и упорядочить группу по группам, а затем снова привязать() результат. Я надеюсь, что может быть более элегантное решение?
Ниже MRE, я хотел бы запустить cumsum на wt per group_by (cyl). Большое спасибо за идеи/предложения.
library(dplyr)
mtcars %>%
group_by(cyl) %>%
arrange(desc(mpg)) %>%
mutate(WtCum = cumsum(wt))
Вы хотите сказать, что хотите «устроить» перед группировкой? Основываясь на запуске вашего кода с использованием '0.5.0', я получаю« mpg », упорядоченный по каждой группе цил – akrun
@akrun - доброта, вы правы и благодарны. В этом случае я, очевидно, неправильно понял [примечания к выпуску] (https://github.com/hadley/dplyr/releases). Как вы интерпретируете первое примечание: «аранжировка() снова игнорирует группировку» – csrvermaak
Вещи не выглядят по порядку «циллом» для меня, если я «просматриваю» весь набор данных в конце трубы. Это близко, но это потому, что количество цилиндров сильно связано с mpg. Чтобы упорядочить внутри групп, добавьте переменную группировки внутри аранжировки. Для этого примера это будет выглядеть как «mtcars%>% group_by (cyl)%>% arr (cyl, desc (mpg))' – aosmith