R中每个客户的平均成本
我试图计算每个客户ID的平均值。有关以下数据: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,
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。哦,我明白了。没有看到上面的链接。谢谢