【问题标题】:Comparing value with previous one in R to tabulate spending?将值与 R 中的前一个值进行比较以制表支出?
【发布时间】:2014-03-16 19:05:14
【问题描述】:

不久前我问了这个问题的一个非常笼统的版本。我以为我会有足够的编程背景来从答案中跳出来创建我的函数,但事实证明我错了。这是我第一次使用 R,我遇到了一些麻烦。

给定以下数据集:

Amount_Bought            CustomerID
12                       28
18                       28
2                        6
9                        6
10                       6

我想创建一个名为“平均支出”的列,它根据每个客户的 ID 将他们的平均支出制成表格。数据中大约有 1000 个条目,购买次数不等。

例如,对于 customerID 28,我希望平均支出为 (12 + 18)/2 = 15

所以,是这样的:

Amount_Bought            CustomerID         Average_Spending
12                       28
18                       28                 15
2                        6
9                        6
10                       6                  7

我该怎么做呢? 谢谢

【问题讨论】:

    标签: r


    【解决方案1】:

    怎么样:

    library(plyr)
    sumdat <- ddply(my_data,"Customer_ID",summarise,
                    avg_spending = mean(Amount_Bought))
    merge(my_data,sumdat)
    

    (在 R 中有多种方式可以通过这种方式聚合数据:aveaggregate in base R、dplyr 包、data.table 包...有 lots关于SO比较这些不同方法的效率等问题,例如Joining aggregated values back to the original data frame

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-12
      相关资源
      最近更新 更多