Группы Tidyverse работают для подведения итогов?

Я заметил, что при использовании оператора group_by с summarize я получаю предупреждение о том, что «перегруппировка отменяется аргументом .groups». Я нашел одну статью в Интернете, которая, кажется, указывает на то, что оператор group_by больше не нужен - нужно просто включить групповой аргумент с помощью summarize. Я хотел бы выяснить, как заставить эту работу работать, поскольку я готовлю онлайн-учебник для студентов, и чем меньше кода, тем лучше. Но для меня это не работает. Ниже мой представитель. Я просто пытаюсь получить средний возраст каждого пола

library(tidyverse)

femaledata <- data.frame(age = rnorm(n=5, mean = 29, sd = 4), gender = "female")
maledata <- data.frame(age = rnorm(n=5, mean = 37, sd = 6), gender = "male")
alldata <- bind_rows(femaledata, maledata)

summarydata <- alldata %>%
  summarize(gender, meanage = mean(age))

Фрейм данных сводных данных должен содержать только две строки (одну для женщин и одну для мужчин) со средним возрастом для каждой. Вместо этого мой фрейм данных выглядит так:

gender   meanage
female    32.6
female    32.6
female    32.6
female    32.6
female    32.6
male      32.6
male      32.6
male      32.6
male      32.6
male      32.6

Я знаю, что оператор group_by несложен, но если бы я мог избавиться от строчки кода, тем лучше.

Спасибо, Wythe


person wythe4    schedule 04.08.2020    source источник
comment
НЕТ НЕТ НЕТ. Это неверно !!!. Группа by по-прежнему нужна. Вам просто нужно указать, что делать с группами в конце. например alldata%>%group_by(gender)%>%summarise(mean(age),.groups = "drop") для удаления групп   -  person Onyambu    schedule 04.08.2020


Ответы (1)


Новая опция .group не заменяет функцию group_by. Опция состоит в том, чтобы позволить вам установить способ обработки группировки.

  • drop_last: отбрасывание последнего уровня группировки. Это была единственная поддерживаемая опция до версии 1.0.0.
  • drop: отбрасываются все уровни группировки.
  • keep: та же структура группировки, что и .data.
  • rowwise: каждая строка - это отдельная группа.

Предупреждающее сообщение, когда параметр .group не задан, можно отключить, установив для dplyr.summarise.inform значение false.

person PingPong    schedule 05.08.2020
comment
Спасибо. Это очень полезно! - person wythe4; 17.08.2020