0

这是一个来自 R 菜鸟的简单问题。我需要根据年销售额对代表绩效进行分位数,但数据是按季度提供的。有人可以帮我优化代码。

Rep Quarter Sales
1 100 1 25
2 100 2 32
3 100 3 40
4 100 4 52
5 101 1 40
6 101 2 23
7 101 3 37
8 101 4 61 
4

1 回答 1

0

这确实是在猜测,因为您的问题太模糊了-但听起来您可以使用aggregate.

set.seed(1)
example <- data.frame(Rep=rep(100:104,each=4),
                      Quarter=rep(1:4,5),
                      Sales=sample(100,20,replace=TRUE))

> head(example)
  Rep Quarter Sales
1 100       1    27
2 100       2    38
3 100       3    58
4 100       4    91
5 101       1    21
6 101       2    90


> aggregate(example$Sales,by=list(Rep=example$Rep),summary)
  Rep x.Min. x.1st Qu. x.Median x.Mean x.3rd Qu. x.Max.
1 100  27.00     35.25    48.00  53.50     66.25  91.00
2 101  21.00     55.50    78.50  68.25     91.25  95.00
3 102   7.00     15.25    19.50  27.25     31.50  63.00
4 103  39.00     47.25    59.50  58.75     71.00  77.00
5 104  39.00     63.75    75.00  72.25     83.50 100.00

或使用公式方法(感谢@Ferdinand):

> aggregate(Sales ~ Rep,summary,data=example)
  Rep Sales.Min. Sales.1st Qu. Sales.Median Sales.Mean Sales.3rd Qu. Sales.Max.
1 100      27.00         35.25        48.00      53.50         66.25      91.00
2 101      21.00         55.50        78.50      68.25         91.25      95.00
3 102       7.00         15.25        19.50      27.25         31.50      63.00
4 103      39.00         47.25        59.50      58.75         71.00      77.00
5 104      39.00         63.75        75.00      72.25         83.50     100.00

您还可以使用以下方法非常轻松地绘制数据boxplot

boxplot(example$Sales~example$Rep)

在此处输入图像描述

于 2013-09-16T15:39:33.450 回答