如何用两个数据框汇总数据

时间:2019-02-15 21:07:45

标签: r date join dplyr jointable

我有两个数据帧。第一个具有客户的ID,名称和地址。第二个拥有您的所有交易(价值,购买日期,现金或信用卡...)。

¨¨

我需要在日期框架1中添加的变量:最旧的日期,较低的购买价值,较高的购买价值,购买的平均价值,购买的数量(在这种情况下,第二个ID的行数数据框)。

我尝试创建第三个日期框架,然后使用clie_id作为参考将第一个日期框架的列与第三个日期框架的列合并。所以我这样做了:

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 ...

但是,R仅返回了一条回答行。他没有汇总每个ID。

我该如何加入?

1 个答案:

答案 0 :(得分:0)

成功

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())

非常感谢您的帮助