Как я могу сгруппировать фрейм данных, затем суммировать общее число для каждой группы, а затем разделить на количество элементов в этой группе? - PullRequest
0 голосов
/ 16 ноября 2018

Я использовал функцию Group_by, чтобы вычислить общую сумму prod_cnt.Но теперь я хочу получить среднюю сумму за prod_cnt (средний / prod_cnt) по группе prod_cnt.Когда я пытаюсь разделить на count = n (), он просто возвращает (+) знаки.Как я могу заставить это работать?

Screenshot

1 Ответ

0 голосов
/ 16 ноября 2018
  1. не вкладывать вызовы в summarize, просто включить одиночный вызов и несколько именованных аргументов, разделенных запятыми.
  2. использовать n() вместо count=n().

Непроверенный код:

library(dplyr)
HW_data_File %>%
  group_by(prod_cat) %>%
  summarize(
    Total_Sale = sum(amount),
    count = n(),
    Per_amount = sum(amount) / n()
  )

Чтобы не пересчитывать вещи (вероятно, не фактор, а только для педагогики), вы можете сделать:

HW_data_File %>%
  group_by(prod_cat) %>%
  summarize(
    Total_Sale = sum(amount),
    count = n()
  ) %>%
  mutate(
    Per_amount = Total_Sale / count
  )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...