dplyr分组并使用来自多个列的条件
我有一个这样的数据框dplyr分组并使用来自多个列的条件,r,dplyr,R,Dplyr,我有一个这样的数据框 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
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进行分组,这样我就可以得到这样的最终数据帧
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
我使用这个代码
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"))
df_RFM11%分组依据(年-月)%>%
总结(新客户=总和(X=“新客户”)、重复客户=总和(X=“重复客户”)、新客户=总和(总销售额=新客户)、重复客户=总和(总销售额=重复客户)
我得到了这个结果
> 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
>头部(df_RFM11)
#一个tibble:6x5
年月份新客户重复客户新客户销售重复客户销售
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
我可以得到我需要的前两列,新客户和回头客的数量,但是当我试图得到新客户和回头客的“总金额”时,我得到了0
关于我做错了什么有什么帮助吗?您需要将它们放在括号中,如下所示:
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"])
)
df_RFM11%
分组单位(年-月)%>%
总结(新客户=总和(X=“新客户”),
重复客户=总和(X=“重复客户”),
新客户销售额=总和(以便士为单位的总额[X==“新客户”),
重复客户销售=总额(以便士为单位的总额[X==“重复客户”])
)
运气不好,我使用了该代码,但在第3和第4次时仍然得到0分column@juan-洛扎诺:注意@arg0naut是如何改变你的条件的。。。你有一个打字错误:Customer
vsCustomers
。事实上,试着解决这个打字错误,它应该会起作用;我在代码中更正了它,所以也许重新运行并让我们知道。不客气!如果有帮助,可以考虑接受这个答案。