我希望使用R来运行ABC分析,也称为帕累托分析。 ABC分析是一个商业术语,用于定义材料管理中常用的分类技术。
每个班级没有固定的门槛,可根据目标和标准应用不同的比例。 ABC分析类似于帕累托原则,因为'A'项目通常占整体价值的很大一部分,但占项目数量的一小部分。
答案 0 :(得分:3)
严肃地说,我认为abc
包是巧合命名的共同供应管理技术。 abc
包创建已知变量的模型,而OP想要基于单个已知变量(收入)创建分类变量。在abc
包中,记录根据变量的值进行分类;根据所讨论的abc技术,记录根据聚合的值进行分类。例如。所有零件号4132457被分类为“A”。
这是一个普通的计算:你在R中的表现并不比你在电子表格中好。如果一个人坚持R实现,我会推荐以下内容:
library(plyr)
z <- data.frame(Part.Number =c(rep(letters[15:1], seq_along(letters[15:1]))),
Price = c(rep(1:15, seq_along(15:1))),
Qty.Sold = sample(1:120))
z[90:120, ]$Qty.Sold <- z[90:120, ]$Qty.Sold * 10 # creates fake data
z.summary <- ddply(z, .(Part.Number), summarise,
Revenue = sum(Price * Qty.Sold)) # summarise fake data
z.summary <- within(z.summary, {
Percent.Revenue <- cumsum(rev(sort(Revenue)))/sum(Revenue)
ABC <- ifelse(Percent.Revenue > 0.91, "C",
ifelse(Percent.Revenue < 0.81, "A", "B"))
})
z.summary
# Part.Number Revenue Percent.Revenue ABC
# 1 a 140850 0.4461246 A
# 2 b 113960 0.8070784 A
# 3 c 21788 0.8760892 B
# 4 d 8220 0.9021250 B
# 5 e 7238 0.9250504 C
# 6 f 6390 0.9452900 C
答案 1 :(得分:0)
与此同时,还有一个专门的R包(http://cran.r-project.org/web/packages/ABCanalysis/index.html)可以完成这项工作。
答案 2 :(得分:-1)
qcc包(http://cran.r-project.org/web/packages/qcc/qcc.pdf)有一个函数pareto.chart,它提供了以表格和图表输出的形式轻松执行ABC分析的方法。