dplyr группировка и использование условного из нескольких столбцов - PullRequest
0 голосов
/ 23 февраля 2019

У меня есть такой фрейм данных

  transactionId user_id total_in_pennies created_at               X  yearmonth
1        345068       8             9900 2018-09-13    New Customer 2018-09-01
2        346189       8             9900 2018-09-20 Repeat Customer 2018-09-01
3        363500       8             7700 2018-10-11 Repeat Customer 2018-10-01
4        376089       8             7700 2018-10-25 Repeat Customer 2018-10-01
5        198450      11                0 2018-01-18    New Customer 2018-01-01
6        203966      11                0 2018-01-25 Repeat Customer 2018-01-01

в нем много строк, но этот небольшой фрагмент можно использовать.

Я пытаюсь сгруппировать, используя dplyr, чтобы я мог получитьокончательный кадр данных, подобный этому

enter image description here

Я использую этот код

df_RFM11 <- data2 %>% group_by(yearmonth) %>% 
  summarise(New_Customers=sum(X=="New Customer"), Repeat_Customers=sum(X=="Repeat Customer"), New_Customers_sales=sum(total_in_pennies & X=="New Customers"), Repeat_Customers_sales=sum(total_in_pennies & X=="Repeat Customers"))

и получаю этот результат

> head(df_RFM11)
# A tibble: 6 x 5
  yearmonth  New_Customers Repeat_Customers New_Customers_sales Repeat_Customers_sales
  <date>             <int>            <int>               <int>                  <int>
1 2018-01-01          4880             2428                   0                      0
2 2018-02-01          2027            12068                   0                      0
3 2018-03-01          1902            15296                   0                      0
4 2018-04-01          1921            13363                   0                      0
5 2018-05-01          2631            18336                   0                      0
6 2018-06-01          2339            14492                   0                      0

и я могу получить первые 2 столбца, которые мне нужны, количество новых клиентов и постоянных клиентов, но я получаю 0, когда пытаюсь получить сумму «total_in_pennies» для новых клиентов и повторного клиента

Любая помощь в том, что я делаю не так?

1 Ответ

0 голосов
/ 23 февраля 2019

Вам нужно заключить их в квадратные скобки, как показано ниже:

df_RFM11 <- data2 %>% 
  group_by(yearmonth) %>% 
  summarise(New_Customers=sum(X=="New Customer"),
            Repeat_Customers=sum(X=="Repeat Customer"),
            New_Customers_sales=sum(total_in_pennies[X=="New Customer"]),
            Repeat_Customers_sales=sum(total_in_pennies[X=="Repeat Customer"])
            )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...