按组划分

时间:2018-02-16 20:31:14

标签: r

我有客户数据和他们购买产品的年份。

df <- data.frame(CustomerID    = c(1, 1, 1, 2, 2, 2), 
             Year = c(2012,2012,2013, 2014, 2015, 2016))

我想计算每个客户购买产品的平均时间。 我期望的结果是

_CustomerID____|__AVG per Year____ 
  1            | 1.5
  2            | 1

3 个答案:

答案 0 :(得分:1)

使用dplyr即可

library(dplyr)

df %>% 
  group_by(CustomerID, Year) %>% 
  summarise(count=n()) %>% 
  summarise(AvgPerYear=mean(count))

答案 1 :(得分:0)

您可以使用一些简单的handelChangeImage(event) { let image = event.target.files[0]; let form = new FormData(); form.append('image', image); this.setState({ image: form, }); 工具执行此操作。在这里,您希望首先dplyr CustomerID,这意味着您正在对各个客户群进行后续步骤。然后,我们使用group_by来获取您想要的值。从您的例子来看,我正在解释&#34;每个客户购买产品的平均时间&#34;表示&#34;取行数并除以年数,包括两端&#34;。

summarise

reprex package(v0.2.0)创建于2018-02-16。

答案 2 :(得分:0)

使用baser:

aggregate(Year~CustomerID,df,function(x)length(x)/length(unique(x)))
  CustomerID Year
1          1  1.5
2          2  1.0