R中每个客户的平均成本

R中每个客户的平均成本,r,mean,R,Mean,我试图计算每个客户ID的平均值。有关以下数据: customerID <- c(1,1,1,1,2,2,2,2,3,3) dates <- c(20130401, 20130403, 20130504, 20130508, 20130511, 20130716, 20130719, 20130723, 20130729, 20130907) cost <- c(12, 41, 89, 45.5, 32.89, 74, 76,

我试图计算每个客户ID的平均值。有关以下数据:

customerID <- c(1,1,1,1,2,2,2,2,3,3)

dates <- c(20130401, 20130403,  20130504,   20130508,   20130511,
       20130716,    20130719,   20130723,   20130729,   20130907)
cost <- c(12,  41,  89, 45.5,   32.89,  74, 76, 12, 15.78,  10)

data <- data.frame(customerID, dates,cost)

data$dates <- as.Date(as.character(data$dates), "%Y%m%d") 

# data2 <- aggregate(cbind(average_cost=cost) + customerID, data, mean) 
如何获得类似的输出?我可以得到整个数据集的平均值,但不是每个客户ID的平均值。谢谢

customerID  average_cost
1           46.875
2           48.7225
3           12.89

dplyr
解决方案

library(dplyr)
df %>%
  group_by(customerID) %>%
  summarise(average_cost = mean(cost))

  customerID average_cost
1          1      46.8750
2          2      48.7225
3          3      12.8900
library(data.table)
dt <- as.data.table(df)
dt[, .(average_cost = mean(cost)), by=customerID]
数据表
解决方案

library(dplyr)
df %>%
  group_by(customerID) %>%
  summarise(average_cost = mean(cost))

  customerID average_cost
1          1      46.8750
2          2      48.7225
3          3      12.8900
library(data.table)
dt <- as.data.table(df)
dt[, .(average_cost = mean(cost)), by=customerID]

谢谢我使用了聚合(cost~customerID,data=df,mean)@davidarenburg。是的,不一样。以前,它是为了找到每个客户的总金额以及日期。这个问题只涉及客户和每个客户的平均值。在这里,日期与前面的问题没有多大关系。数据集的值看起来很相似,但我正在尝试不同的场景。这个问题是重复的一个具体案例。@DavidArenburg。哦,我明白了。没有看到上面的链接。谢谢