我有一个以下形式的数据框:
DF:
RepName, Discount
Bob,Smith , 5383.24
Johh,Doe , 30349.21
...
重复这些名字。在df中,RepName是一个因子,Discount是数字。我想计算每个RepName的平均值。我似乎无法使汇总陈述正确。
我试过了:
#This doesn't work
repAggDiscount <- aggregate(repdf, by = repdf$RepName, FUN = mean)
#Not what I want:
repAggDiscount <- aggregate(repdf, by = list(repdf$RepName), FUN = mean)
我也尝试了以下内容:
repnames <- lapply(repdf$RepName, toString)
repAggDiscount <- aggregate(repdf, by = repnames, FUN = mean)
但是这给我一个长度不匹配......
我已经阅读了帮助,但是这个应该如何适用于我的数据的示例将会有很长的路要走...谢谢!
答案 0 :(得分:1)
我在这里发布了@ AnandaMahto的回答来解决这个问题。您可以使用公式语法
aggregate(Discount ~ RepName, repdf, mean)
或者您可以使用by=
语法
repAggDiscount <- aggregate(repdf$Discount, by = list(repdf$RepName), FUN = mean)
您的语法问题在于您尝试聚合整个data.frame,其中包含RepName列,其中mean
没有意义
你也可以
repAggDiscount <- aggregate(repdf[,-1], by = repdf[,1,drop=F], FUN = mean)
更接近矩阵式语法。