R - 指望两种不同的条件

时间:2017-05-09 20:09:48

标签: r aggregate

虽然我一直使用Stackoverflow,但这是我的第一个问题,所以我希望它足够详细。提前谢谢。

我正在尝试从大型数据集中提供一些统计信息,其中我有一组用户ID。数据集中的每条记录都是一个客户用户ID。我需要能够按销售代表汇总...每个销售代表的用户ID数量和每个销售代表的客户数量

sample <- data.frame(rep = c(1,1,1,1,1,2,2,2), 
             customer = c("A","A","A","B","C","X","X","Y"), 
             userID = c("ID1","ID2","ID3","ID4","ID5","ID6","ID7","ID8"))

在这个数据集中,我需要能够说:

Rep ID  --  # of Cust   -- # of IDs
Rep 1   --  3 customers --  5 IDs
Rep 2   --  2 customers --  3 IDs

我打算把2张桌子放在一起,但这并不能让我在那里...... data.frame(table(paste(sample$rep,sample$customer)))给了我一个非常手工的方法来得出我的答案。

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

更新以反映@Lamia评论,它通过使用内置的dplyr函数简化了代码。

library(dplyr)

sample %>% group_by(rep) %>% summarize(customer = n_distinct(customer),
                                       user = n_distinct(userID))

输出:

    rep customer  user
  <dbl>    <int> <int>
1     1        3     5
2     2        2     3