gpt4 book ai didi

r - 计算自加入R年以来的客户平均购买次数

转载 作者:行者123 更新时间:2023-12-02 06:48:56 25 4
gpt4 key购买 nike

我在 R 中有以下数据框,它显示了 4 位客户在四年内每年的购买次数。 member_since 变量显示客户加入公司的年份。

id<-c(1,2,3,4)
member_since<-c(2014,2016,2015,2014)
X2014<-c(2,0,0,3)
X2015<-c(3,0,4,2)
X2016<-c(3,2,3,4)
X2017<-c(2,3,6,0)
df<-data.frame(id,member_since,X2014,X2015,X2016,X2017)

id member_since X2014 X2015 X2016 X2017
1 2014 2 3 3 2
2 2016 0 0 2 3
3 2015 0 4 3 6
4 2014 3 2 4 0

现在,我正在尝试创建一个新变量 mean_purchase 来计算每个客户从她/他加入的那一年起每年的平均购买次数。这意味着例如对于 客户 2,购买总数应除以 2,但对于 客户 4,购买总和应除以 4。

 id    member_since X2014 X2015 X2016 X2017 mean_purchase
1 2014 2 3 3 2 2.5
2 2016 0 0 2 3 2.5
3 2015 0 4 3 6 4.33
4 2014 3 2 4 0 2.25

在此感谢您的帮助。

最佳答案

我们可以使用apply

df$mean_purchase <- apply(df[3:6], 1, function(x) round(sum(x)/sum(cumsum(x > 0) > 0), 2))
df$mean_purchase
#[1] 2.50 2.50 4.33 2.25

或者使用 matrixStats 中的 rowCumsums

library(matrixStats)
rowSums(df[3:6])/rowSums(rowCumsums(+(df[3:6] > 0)) > 0)

关于r - 计算自加入R年以来的客户平均购买次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50001824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com