我有客户数据和他们购买产品的年份。
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
答案 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