首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dplyr分组和使用多列中的条件

dplyr分组和使用多列中的条件
EN

Stack Overflow用户
提问于 2019-02-24 03:25:11
回答 1查看 42关注 0票数 2

我有一个像这样的数据框

代码语言:javascript
复制
  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进行分组,这样我就可以获得如下所示的最终数据帧

我使用下面的代码

代码语言:javascript
复制
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"))

我得到了这样的结果

代码语言:javascript
复制
> 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

我可以得到我需要的前两列,即新客户和回头客的数量,但是当我尝试得到新客户和回头客的"total_in_pennies“之和时,我得到的结果是0

我哪里做错了,有什么帮助吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-24 03:31:14

您需要将它们放在括号中,如下所示:

代码语言:javascript
复制
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"])
            )
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54845308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档