Как суммировать данные с двумя фреймами данных - PullRequest
0 голосов
/ 16 февраля 2019

У меня есть два кадра данных.Первый имеет идентификатор клиента, имя и адрес.Во втором есть все ваши транзакции (значения, дата покупки, наличные или кредитная карта ...).

str(data.frame_1)

Classes ‘data.table’ and 'data.frame':  201917 obs. of  5 variables:
 $ clie_id           : chr  "C_ID_97" "C_ID_3f" "C_ID_dd" "C_ID_11" ...
 $ address_1         : int  5 4 2 4 1 4 3 3 2 2 ...
 $ salary            : int  2 1 2 3 3 2 2 2 1 2 ...
 $ gender            : int  1 0 0 0 0 0 1 1 0 0 ...
 $ have_kids         : num  -0.82 0.393 0.688 0.142 -0.16 ...


str(data.frame_2)

 $ clie_id             : chr  "C_ID_00007093c1" "C_ID_00007093c1" "C_ID_00007093c1" "C_ID_00007093c1" ...
 $ city                : int  -1 -1 -1 -1 76 76 76 76 76 244 ...
 $ purchase_date       : Date, format: "2012-06-14" "2013-08-01" "2013-09-08" "2013-10-28" ...
 $ state               : int  -1 -1 -1 -1 2 2 2 2 2 2 ...
 $ sector              : int  8 8 8 8 33 33 33 33 1 34 ...
 $ category            : chr  "Y" "Y" "Y" "Y" ...
 $ purchase_amount     : num  -0.729 -0.709 -0.721 -0.672 -0.672 ...

Переменные, которые мне нужно добавить в рамку даты 1: самая старая дата, более низкая покупкастоимость, более высокая стоимость покупки, средняя стоимость покупок, количество покупок (в этом случае будет число строк каждого идентификатора во втором кадре данных).

Я пытался создать третий кадр даты, чтобы затемобъединить столбцы первого фрейма даты со столбцами третьего фрейма даты, используя clie_id в качестве ссылки.Итак, я сделал это:

total_data_summarise_by_id <- data.frame_2 %>% 
                                  group_by(clie_id) %>%
                                  summarise(first_date = min(purchase_date),
                                            min_purchase_amount = min(purchase_amount),
                                            max_purchase_amount = max(purchase_amount),
                                            mean_purchase_amount = mean(purchase_amount))

Однако R вернул только одну строку ответа.Он не суммировал для каждого идентификатора.

Как я могу сделать это объединение?

1 Ответ

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

Успех

total_data_summarise_by_id <- data.frame_2 %>% 
                                  group_by(clie_id) %>%
                                  summarise(first_date = min(purchase_date),
                                            min_purchase_amount = min(purchase_amount),
                                            max_purchase_amount = max(purchase_amount),
                                            mean_purchase_amount = mean(purchase_amount)),
                                            total = n())

Большое спасибо за помощь

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