найти количество клиентов, добавленных каждый месяц - PullRequest
0 голосов
/ 20 октября 2018
customer_id  transaction_id    month  year 
          1    3                7     2014
          1    4                7     2014
          2    5                7     2014
          2    6                8     2014
          1    7                8     2014
          3    8                9     2015
          1    9                9     2015
          4    10               9     2015
          5    11               9     2015
          2    12               9     2015

Я хорошо знаком с основами R.Мы будем благодарны за любую помощь.

ожидаемый результат должен выглядеть следующим образом:

month   year  number_unique_customers_added
 7      2014     2
 8      2014     0
 9      2015     3

В 7-м и 2014-м месяце присутствуют только customer_id 1 и 2, поэтому добавлено количество клиентовэто два.В месяце 8 и 2014 году новые идентификаторы клиентов не добавляются.Таким образом, в этот период должно быть добавлено ноль клиентов.Наконец, в 2015 году и 9 месяце добавляются новые customer_ids 3,4 и 5.Таким образом, в этот период добавлено 3 новых клиента.

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Используя dplyr, мы можем сначала создать столбец, который указывает, является ли клиент дублирующим или нет, а затем мы group_by month и year подсчитываем новых клиентов в каждой группе.

library(dplyr)
df %>%
  mutate(unique_customers = !duplicated(customer_id)) %>%
  group_by(month, year) %>%
  summarise(unique_customers = sum(unique_customers))

#  month  year unique_customers
#  <int> <int>            <int>
#1     7  2014                2
#2     8  2014                0
#3     9  2015                3
0 голосов
/ 24 октября 2018

Использование data.table:

require(data.table)

dt[, .SD[1,], by = customer_id][, uniqueN(customer_id), by = .(year, month)]

Объяснение: Сначала мы удаляем все последующие транзакции каждого клиента (нас интересует первая, когда она «новый клиент»), а затемсчитать уникальных клиентов по каждой комбинации года и месяца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...